【问题标题】:How do I get the contents of an <iframe> containing a different site?如何获取包含不同站点的 <iframe> 的内容?
【发布时间】:2009-06-24 02:24:25
【问题描述】:

我能够使用.src 获得'src' 属性。但我无法获取位于另一个域中的内容。这是浏览器安全问题吗?

jQuery(document).ready(function() {
    var elementTest = $("iframe:first").get(0);
    alert(elementTest.src);  // ok
    alert(elementTest.innerHTML);  // not ok
});

【问题讨论】:

    标签: javascript jquery html iframe


    【解决方案1】:

    是的,这个限制针对在该外部域中检查内容和执行代码被称为same-origin policy

    【讨论】:

      【解决方案2】:

      您正在尝试(在某种意义上)是跨域通信。这不会以您尝试过的正常方式工作(由于 altCognito 指出的同源策略),但如果您可以控制另一台服务器,则有一些解决方案。看看这篇文章:

      http://msdn.microsoft.com/en-us/library/bb735305.aspx

      【讨论】:

        【解决方案3】:

        您要查找的属性是 contentWindow。

        试试这个代码:

        alert(elementTest.contentWindow.document.innerHTML);
        

        它类似于当前窗口对象,但用于 iframe。所以你也可以这样做:

        alert(elementTest.contentWindow.location.href);
        

        编辑:啊 - 我错过了您在 iframe 中有来自另一个域的页面的事实。 此方法不适用于您,因为一个域(您的父窗口)和访问另一个域(您的 iframe)中的信息的内置浏览器限制。

        【讨论】:

        • 这只有在 iframe 中加载的内容来自同一个域时才有效......在他的情况下,这将不起作用。
        • 获取属性 Window.document 的权限被拒绝
        • 看起来像在这种情况下,我将能够在谷歌小工具中包含诱惑
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-02
        • 1970-01-01
        相关资源
        最近更新 更多