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/7570496/

相关文章:

iframe - youtube嵌入在stickytop导航上-IE7

javascript - 向上滚动页面时添加类

javascript - VueJS : Filter through objects in an array

javascript - 用ramda合并三个数组

javascript - 在 JavaScript 和 jQuery 中使用委托(delegate)事件处理程序是否存在性能缺陷?

javascript - 模态窗口内的 iFrame 在 Chrome 上不起作用

javascript - 使用隐藏输入 [type=file] 在表单上禁用文件浏览器

javascript - 最轻的 DOM 对象

jquery - 在 jQuery 中引用 DOM 元素

c# - 从背后的 ASP.NET 代码与 iFrame 对话