gpt4 book ai didi

javascript - 外部 JavaScript 在 iF​​rame 中不起作用?

转载 作者:行者123 更新时间:2023-12-03 09:33:29 24 4
gpt4 key购买 nike

我正在尝试创建一个 iframe,其 contentWindow.document 是我自己创建的文档。我使用以下方法创建框架:

var myFrame = document.createElement("iframe");

我使用以下方法创建文档:

var doc = document.implementation.createHTMLDocument("sampleTitle");

我使用$.get()和一个回调函数,用于检索我想要放入 iframe 中的页面 View 的 insideHTML 数据,然后我通过更改 doc.body.innerHTML 将该数据放入文档中和doc.head.innerHTML 。最后,我用 doc 中的数据填充框架。使用:

var destDocument = frame.contentWindow.document;
var srcNode = doc.documentElement;
var newNode = destDocument.importNode(srcNode, true);
destDocument.replaceChild(newNode, destDocument.documentElement);

问题:当我这样做时,放置在 iframe 的 contentWindow.document 中的外部 JavaScript 不起作用,即使该文件的“src”属性是与父文档位于同一文件夹中的 HTML 文件的 URL, contentWindow.document 中的“src”属性是同一文件夹中 JavaScript 文件的 URL。

但是,如果我简单地创建一个 <iframe>,JavaScript 就可以工作。并将源设置为我想要的页面 View 的 URL。为什么我自己创建文档时不起作用?如果我覆盖“src”属性指向的 HTML,contentWindow.location.href 中 iframe 的指定位置是否与实际位置不同?

最佳答案

当您创建 iframe 且未设置 src 属性时,其源隐式为 about:blank。这将阻止任何相对链接工作(因为它们与 about:blank 相关!),并且还可能导致大量 Javascript 出现故障。

除非您有充分的理由不这样做,否则您应该将 iframe 的源设置为您域上的某物,以正确设置其来源。即使只是一个空的 HTML 文件也比 about:blank 更好。

关于javascript - 外部 JavaScript 在 iF​​rame 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31414461/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com