【发布时间】:2015-10-03 13:15:59
【问题描述】:
我正在尝试创建一个 iframe,其 contentWindow.document 是我自己创建的文档。我使用以下方法创建框架:
var myFrame = document.createElement("iframe");
我使用以下方法创建文档:
var doc = document.implementation.createHTMLDocument("sampleTitle");
我使用$.get() 和一个回调函数来检索要放置在iframe 中的页面视图的innerHTML 数据,然后通过更改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> 并将源设置为我想要的页面视图的 URL,那么 JavaScript 就可以工作。为什么我自己创建文档时它不起作用?如果我覆盖“src”属性指向的 HTML,contentWindow.location.href 中 iframe 的指定位置是否与实际位置不同?
【问题讨论】:
标签: javascript jquery html iframe