Javascript 设置iframe的innerHTML

Javascript 设置iframe的innerHTML,javascript,iframe,innerhtml,Javascript,Iframe,Innerhtml,在javascript中,如何设置iframe的innerHTML?我的意思是:如何设置,而不是 window[“ifrm\u name”].document.innerHTML=“Hi”不起作用,其他解决方案也是如此 Iframe和父文档位于同一个域中 我需要设置整个文档iframe的html,而不是它的主体 我需要避免使用jquery解决方案。在Firefox和Chrome(不了解Opera)中,您可以使用该方案 是一个生成数据的工具:URI编码的数据 这是: 出于安全原因,数据URI

在javascript中,如何设置iframe的innerHTML?我的意思是:如何设置,而不是

window[“ifrm\u name”].document.innerHTML=“Hi”
不起作用,其他解决方案也是如此

Iframe和父文档位于同一个域中

我需要设置整个文档iframe的html,而不是它的主体

我需要避免使用jquery解决方案。

在Firefox和Chrome(不了解Opera)中,您可以使用该方案


是一个生成数据的工具:URI编码的数据

这是:

出于安全原因,数据URI仅限于下载的资源。数据URI不能用于导航、脚本编写或填充框架或iframe元素


然而,如果正如您在评论中所说的,获取/设置文档正文就足够了,那么使用其中一个链接示例就容易多了。

一个非常简单的示例

<iframe id="fred" width="200" height="200"></iframe>
“contentDocument”相当于您在主窗口中获得的“document”,因此您可以对此进行调用,以设置body、head和其中的任何元素。。。等等


我只在IE8、Chrome和Firefox中测试过这个。。。因此,如果您有可用的副本,您可能需要在IE6/7中进行测试。

在改进AJAXS环境中的文件上载时,我也有同样的需要。这在ie8和ff 22.0中对我有效。正文innerhtml和divinnerHTML都可以工作

function copyframedata(data) {
  var x = document.getElementById("photo_mgr_frame");
  var y = x.contentWindow || x.contentDocument;
  if (y.document) y = y.document;
  y.getElementById('photo_mgr_mb').innerHTML = data;
}

从w3获得它,还有
srcdoc
属性:

<iframe srcdoc="<p><h1>Hello</h1> world</p>"></iframe>


,.

我认为这在某些浏览器中是可能的,但在其他浏览器中则不行。您需要支持哪些项目?为什么不使用一个简单的
div
来代替呢?@infoSetu这两个都不是他想要的,我想,他想要设置完整的document@Pekka:如果我必须选择,我希望它能在Firefox中工作。我需要一个iframe,因为我必须“模拟”一个头部带有脚本和css外部链接的真实页面@infoSetu:你看到我问题文本中的链接了吗?我需要设置,而不是获取;我需要设置文档的属性,而不是其中一个元素的属性。@info不,他需要设置整个文档,而不仅仅是主体。承认主体可能足够了,哪种解决方案是完美的?你(和你之前的我)链接的页面中哪一个是完美的?获取或设置是否完美?.write可以工作,但如果我运行s.contentDocument.documentElement.innerHTML=“
fred rules”;它不起作用。你真的在IE8中测试过吗?小心,你可能需要关闭与s.contentDocument.close()的连接;见数据:URI,有趣,我不知道。我想知道DOM隔离,但也许我会提出另一个问题。不知道为什么会有人想这样做。
function copyframedata(data) {
  var x = document.getElementById("photo_mgr_frame");
  var y = x.contentWindow || x.contentDocument;
  if (y.document) y = y.document;
  y.getElementById('photo_mgr_mb').innerHTML = data;
}
<iframe srcdoc="<p><h1>Hello</h1> world</p>"></iframe>