我想知道如何从IFrame跨域获取内容?
从非跨域iFrame获取内容没有问题,但当它位于其他域时,JavaScript不允许访问。
答案 0 :(得分:11)
您使用Cross Document Messaging,here'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中加载我的银行网站并阅读我的所有帐户详细信息,我会非常不满意)