javascript - 获取 iframe 的文档对象

标签 javascript dom iframe

我正在尝试获取 iframe 的文档对象,但我用谷歌搜索过的示例似乎都无济于事。我的代码如下所示:

<html>
    <head>
        <script>
            function myFunc(){
                alert("I'm getting this far");
                var doc=document.getElementById("frame").document;
                alert("document is undefined: "+doc);
            }
        </script>
    </head>
    <body>
        <iframe src="http://www.google.com/ncr" id="frame" width="100%" height="100%" onload="myFync()"></iframe>
    </body>
</html>

我已经测试过我能够获得 iframe 对象,但是 .document 和 .contentDocument 都不起作用,我想我也测试了一些其他选项,但所有选项都返回未定义,即使是示例应该有用,但它们对我不起作用。所以我已经有了 iframe 对象,现在我想要的只是它的文档对象。我已经在 Firefox 和 Chrome 上对此进行了测试,但无济于事。

最佳答案

尝试以下操作

var doc=document.getElementById("frame").contentDocument;

// Earlier versions of IE or IE8+ where !DOCTYPE is not specified
var doc=document.getElementById("frame").contentWindow.document;

注意:AndyE 指出所有主流浏览器都支持 contentWindow,因此这可能是最好的方法。

注意 2:在此示例中,您将无法通过任何方式访问文档。原因是你无法访问异源iframe的文档,因为它违反了“同源”安全策略

关于javascript - 获取 iframe 的文档对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8844055/

相关文章:

javascript - 使用回调mysql函数

javascript - 用 dat.gui 保存参数似乎坏了?

javascript - 无法使用 forEach 循环遍历 HTMLCollection

iframe - 在 iFrame 内调整视口(viewport)大小

javascript - 如果已在 WordPress 插件菜单中使用,我可以捕获单击元素吗?

javascript - Jquery UI 多列自动完成下拉列表在鼠标悬停时消失

javascript - 如何将 Shift+Click 事件传递到底层输入元素?

javascript - 不使用innerHTML获取innerHTML

javascript - iframe 的 src 属性可以执行 POST 请求吗?

css - HTML5 iFrame 的高度只有 150px