iframe.contentWindow.document的Chrome替代品是什么?

6
我该如何在Chrome中调用以下内容?iframe.contentWindow.document

你是什么意思?那不是一个函数,所以你不能调用它。 - Šime Vidas
http://www.w3schools.com/jsref/prop_frame_contentwindow.asp - Skizit
我之前回答过这个问题:https://dev59.com/Y1TTa4cB1Zd3GeqPrVbW#5002576 - Tim Down
3个回答

8
Chrome确实支持iframe.contentWindow.document,但是有一个小问题你可能会遇到:如果设置给iframe.src属性的文件是本地访问(即使用"file://"协议),那么该属性在Chrome中将不可访问。如果您指定了相对地址并尝试在没有使用像IIS或Apache这样的Web服务器的情况下测试脚本(通过双击它),就会发生这种情况。同样适用于iframe.contentDocument
我遇到了类似的问题,Chrome无法接受动态附加到iframes上的事件处理程序。然后我在这篇文章中找到了说明,使用Apache进行测试,嘿,它突然开始工作了。

6

为什么使用 .defaultView.getComputedStyle 时,针对 iframe.contentDocument 会报错 Uncaught TypeError: Cannot call method 'getComputedStyle' of undefined - Skizit
@Skizit:对我来说它运行良好。你有测试页面或示例代码可以展示问题吗? - Tim Down
@Šime:在当前版本的Chrome中似乎可以工作。但我不确定它是否总是有效;我记得在某处读到过它无效。在任何情况下,如果存在contentDocument,则最好使用它。 - Tim Down

-1
<iframe id="popupFrame" />

<script type="text/javascript">
var popupFrame = document.getElementById('popupFrame');
var iFrameDoc;
if (switchAccountsPopupFrame.document) {
    iFrameDoc = switchAccountsPopupFrame.document; // works with IE9 and FF9
}
else {
    // Google Chrome (16.0.912.75 m)
    iFrameDoc = switchAccountsPopupFrame.ownerDocument;
}
....
</script>

ownerDocument 就如其名称所示。它是 iFrame 的所有者文档,即 document - Benjamin Atkin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接