【发布时间】:2020-04-29 12:18:30
【问题描述】:
我有一个 iframe ifr 和一个文档 doc。我想使用加载的文档设置 iframe 的内容/文档。
我现在拥有的是:
ifr.contentDocument.open();
ifr.contentDocument.write(doc.documentElement.innerHTML);
ifr.contentDocument.close();
这样做的目的是将 HTML 中的文档内容复制到 iframe 的文档中。
我想要的是让 iframe 显示加载的文档而不复制它。在这种情况下,另一个 iframe 可以显示相同的文档实例,并且任何修改都将在两个 iframe 中完成。
这在 JavaScript 中是否可行?
【问题讨论】:
-
不,这不可能,每个 iframe 都有自己的浏览上下文,并且在浏览上下文之间共享文档是不可能的。
-
@Teemu 好的,是否可以共享至少一个节点?例如,
<html>根节点? -
不,这也不可能,一个节点只能有一个父元素。不过,您可以在没有
document.write的情况下使用 clone nodes。 -
好的,我可能找到了解决方案,我正在尝试创建多个 iframe 并在父节点中替换它们。问题是,iframe 在创建时既没有窗口也没有文档。必须将它们添加到窗口中才能初始化所有内容。有没有办法我可以做到这一点?顺便说一句,我尝试了
<object>并遇到了同样的问题。 -
@bsella 见我的answer 它完全依赖于默认的 HTML 行为,没有 JavaScript,虽然有 CSS,但它完全是可选的。
标签: javascript iframe document