ie 要在子页面中向最顶层的页面添加一个dom对象

来源:互联网 发布:c 调用tensorflow 编辑:程序博客网 时间:2024/05/16 12:25

要在子页面中向最顶层的页面添加一个dom对象 

在iframe的页面中调用 

$(window.top.document).find("body").append(jqTopDialog_DivMaskLayer); 
jQuery写法jqTopDialog_DivMaskLayer是jQuery对象 
或 
window.top.document.body.appendChild(jqTopDialog_DivMaskLayer[0]); 
普通写法jqTopDialog_DivMaskLayer是jQuery对象 

在IE8和谷歌浏览器中通过,在IE6和IE7中会出错(“无效参数”),IE6和IE7中该怎么添加 

恨死IE6和IE7了  
------------------------------

#2
改成 
  $('body',window.parent.document).append(jqTopDialog_DivMaskLayer); 
试试。 
------------------------------

#3

引用 1 楼 ilwm1984 的回复:
改成 
? $('body',window.parent.document).append(jqTopDialog_DivMaskLayer); 
试试。 


不行啊,一样的错误 
------------------------------

#4
跟踪下jqTopDialog_DivMaskLayer有没有,是不是undefined 
------------------------------

#5
引用 3 楼 asharpnet 的回复:
跟踪下jqTopDialog_DivMaskLayer有没有,是不是undefined 


jqTopDialog_DivMaskLayer没有任何问题,在向自身页面添加时时完全正常,只有在向window.top添加时才会出错 
------------------------------

#6
用IE8的开发人员工具来调试一下。 
------------------------------

#7
引用 5 楼 ilwm1984 的回复:
用IE8的开发人员工具来调试一下。 


IE8下一切正常,没有任何问题,用IE8的开发人员工具监控也一切正常,只有在IE6和IE7中才会出错 
------------------------------

#8
在创建的时候用top.document 

var div = top.document.createElement("div"); 
top.document.body.appendChild(div); 

在IE6 下可以. 
------------------------------

#9
引用 7 楼 free_wind22 的回复:
在创建的时候用top.document 

var div = top.document.createElement("div"); 
top.document.body.appendChild(div); 

在IE6 下可以. 

很有可能是这个问题,LZ检查下创建时候的document对象是否是父窗口的 
------------------------------

#10
“Free_Wind22”一语道破天机! 
结贴,参与有奖~ 
------------------------------

#11
引用 7 楼 free_wind22 的回复:
在创建的时候用top.document 

var div = top.document.createElement("div"); 
top.document.body.appendChild(div); 

在IE6 下可以. 

---- 
这样是使用HTML DOM来操作,在IE6下是肯定没问题的。 
但是,使用jquery的append来操作的话,在ie6/7下的确有问题。 
我跟了一下源码,发现是在使用Jquery.clean的时候出现的错误。 
具体原因及解决办法未知中。

http://www.pc0634.com:81/2010/0106/6452.html

原创粉丝点击