【发布时间】:2011-06-24 22:42:33
【问题描述】:
我想知道如何从 IFrame 跨域获取内容?
我从非跨域 iFrame 获取内容没有问题,但是当它位于另一个域时,JavaScript 不允许访问。
【问题讨论】:
-
在您的服务器上使用代理脚本来获取内容并将其传递到您的页面...然后您可以通过 Ajax 与该脚本进行通信。
标签: javascript jquery iframe
我想知道如何从 IFrame 跨域获取内容?
我从非跨域 iFrame 获取内容没有问题,但是当它位于另一个域时,JavaScript 不允许访问。
【问题讨论】:
标签: javascript jquery iframe
您使用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。
【讨论】:
iframe,不知道那里发生了什么
您不能通过自己服务器上的代理请求它。
same origin policy 阻止了它(这是有充分理由的;如果您在 iframe 中加载我的银行网站并阅读我的所有帐户详细信息,我会非常不高兴)
【讨论】: