将IFRAME DOM移动到新窗口

时间:2015-06-21 12:02:49

标签: javascript iframe popupwindow

尽管将IFRAME移动到新打开的窗口是没有用的(参见类似问题,IFRAME将重新加载),但可以移动IFRAME内容,例如。顶级HTML节点到另一个窗口。例如

iframe_html_node=document.getElementById('my_iframe').contentDocument.firstChild;
new_window=window.open();
new_window.document.replaceChild(iframe_html_node,new_window.document.firstChild);

当然,如果只需要部分,也可以替换更深层次的DOM。

但是,有一个显示停止:当新窗口打开为空时,它没有有效的document.location设置,因此它的内容链接和资源没有基本URI,它将在将所有内容变为空白(在Chrome中测试),例如。 CSS和图像都坏了。

当然可以在复制之前将new_window.document.location设置为IFRAME,但如果包含JS框架附加其处理程序等,则会触发很多混乱。此外,它还意味着竞争条件,我们必须对替换HTML节点的时间保持警惕,因为它可能会被加载文档覆盖。

有什么建议吗?

0 个答案:

没有答案