页面使用iframe,用JavaScript向最顶层页面添加dom对象出错,在线等,解决问题就结贴

震我一下巧克力 2010-01-06 10:22:22
要在子页面中向最顶层的页面添加一个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了
...全文
331 10 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jeremyxuzz 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 free_wind22 的回复:]
在创建的时候用top.document

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

在IE6 下可以.
[/Quote]
----
这样是使用HTML DOM来操作,在IE6下是肯定没问题的。
但是,使用jquery的append来操作的话,在ie6/7下的确有问题。
我跟了一下源码,发现是在使用Jquery.clean的时候出现的错误。
具体原因及解决办法未知中。
  • 打赏
  • 举报
回复
“Free_Wind22”一语道破天机!
结贴,参与有奖~
浪尖赏花 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 free_wind22 的回复:]
在创建的时候用top.document

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

在IE6 下可以.
[/Quote]
很有可能是这个问题,LZ检查下创建时候的document对象是否是父窗口的
2010-01-06
  • 打赏
  • 举报
回复
在创建的时候用top.document

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

在IE6 下可以.
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ilwm1984 的回复:]
用IE8的开发人员工具来调试一下。
[/Quote]

IE8下一切正常,没有任何问题,用IE8的开发人员工具监控也一切正常,只有在IE6和IE7中才会出错
jeremyxuzz 2010-01-06
  • 打赏
  • 举报
回复
用IE8的开发人员工具来调试一下。
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 asharpnet 的回复:]
跟踪下jqTopDialog_DivMaskLayer有没有,是不是undefined
[/Quote]

jqTopDialog_DivMaskLayer没有任何问题,在向自身页面添加时时完全正常,只有在向window.top添加时才会出错
asharpnet 2010-01-06
  • 打赏
  • 举报
回复
跟踪下jqTopDialog_DivMaskLayer有没有,是不是undefined
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ilwm1984 的回复:]
改成
  $('body',window.parent.document).append(jqTopDialog_DivMaskLayer);
试试。
[/Quote]

不行啊,一样的错误
jeremyxuzz 2010-01-06
  • 打赏
  • 举报
回复
改成
$('body',window.parent.document).append(jqTopDialog_DivMaskLayer);
试试。
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2010-01-06 10:22
社区公告
暂无公告