如何获取包含其他网站的<iframe>的内容?</iframe>

时间:2009-06-24 02:24:25

标签: javascript jquery html iframe

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

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

3 个答案:

答案 0 :(得分:7)

是的,此 限制 反对检查内容并在该外部域中执行代码称为same-origin policy

答案 1 :(得分:1)

您正在寻找的属性是contentWindow。

试试这段代码:

alert(elementTest.contentWindow.document.innerHTML);

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

alert(elementTest.contentWindow.location.href);

修改:啊 - 我错过了你在iframe中拥有来自其他网域的网页的事实。 这种方法不适合您,因为一个域(您的父窗口)的内置浏览器限制和访问另一个域(您的iframe)中的信息。

答案 2 :(得分:1)

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

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