获取跨域iFrame内容

时间:2011-06-24 22:42:34

标签: javascript jquery iframe

我想知道如何从IFrame跨域获取内容?

从非跨域iFrame获取内容没有问题,但当它位于其他域时,JavaScript不允许访问。

2 个答案:

答案 0 :(得分:11)

您使用Cross Document Messaginghere's an example。以下是父页面中的重要代码:

window.addEventListener('message', receiver, false);
function receiver(e) {
    document.getElementById('message').value = e.data;
}
function update_child() {
    var el = document.getElementsByTagName('iframe')[0];
    el.contentWindow.postMessage('Updated from parent', '*');
}

子页面具有相同的代码 - 请注意,您需要能够在两个域上实现接口才能使其工作,如果您同时控制它们,或者与其他域的所有者合作。在生产代码中,您应该set (and check) the origin

答案 1 :(得分:5)

如果没有通过您自己服务器上的代理请求它,则不能。

same origin policy阻止它(并且有充分的理由;如果您在我的iframe中加载我的银行网站并阅读我的所有帐户详细信息,我会非常不满意)