gpt4 book ai didi

html - 无法在 IE10 上获得同源 iframe 主体?

转载 作者:太空宇宙 更新时间:2023-11-04 14:41:40 24 4
gpt4 key购买 nike

我创建了一个带有空 iframe 的页面。然后我可以选择 iframe 文档并导航到它的正文:

var iframe = document.getElementsByTagName('iframe')[0];
var doc = iframe.contentDocument || iframe.contentWindow.document;
var body = doc.body;
console.log("Body is", body);

在 firefox 和 chrome 中,这给了我 body 对象。在 IE10 中,它给了我 null。

Here is a Jsbin demonstrating the issue.打开 JS、控制台、输出面板,然后单击“使用 JS 运行”。

两个问题:

  1. 如何以跨浏览器的方式访问 iframe 的主体?
  2. 哪个是正确的“符合规范”的行为?

最佳答案

今天早些时候我遇到了类似的问题。似乎 IE,至少 9 和 10,没有正确创建 iframe 主体(当我使用开发人员工具时,我能够在 iframe 中看到一个 body 标签,但就像你无法调用它一样),当没有指定的 src。它给你 null 因为它不存在。

关于是否有跨浏览器方式来访问 iframe 的主体,答案是否定的。但是,您可以使用解决方法。首先检查iframe body是否存在,如果不存在则创建。

您的代码如下所示:

var iframe = document.getElementsByTagName('iframe')[0];
var doc = iframe.contentDocument || iframe.contentWindow.document;

// The workaround
if (doc.body == null) { // null in IE
doc.write("<body></body>");
}

var body = doc.body;
console.log("Body is", body);

来源:http://forums.asp.net/t/1686774.aspx/1

关于html - 无法在 IE10 上获得同源 iframe 主体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14967316/

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