【问题标题】:Get Cross-Domain iFrame content获取跨域 iFrame 内容
【发布时间】:2011-06-24 22:42:33
【问题描述】:

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

我从非跨域 iFrame 获取内容没有问题,但是当它位于另一个域时,JavaScript 不允许访问。

【问题讨论】:

  • 在您的服务器上使用代理脚本来获取内容并将其传递到您的页面...然后您可以通过 Ajax 与该脚本进行通信。

标签: javascript jquery iframe


【解决方案1】:

您使用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

【讨论】:

  • 我无法控制这两个域。
  • 您的示例不起作用。由于找不到 iframe 元素,控制台出现错误。
  • @MayankModi 抱歉回复晚了,我已经添加了iframe,不知道那里发生了什么
【解决方案2】:

您不能通过自己服务器上的代理请求它。

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

【讨论】:

    猜你喜欢
    • 2013-08-23
    • 2020-08-20
    • 2011-12-17
    • 1970-01-01
    • 2017-08-15
    • 2021-11-05
    相关资源
    最近更新 更多