【问题标题】:Cross-domain JavaScript iFrame-parent access blocked跨域 JavaScript iFrame 父级访问被阻止
【发布时间】:2014-01-17 02:18:41
【问题描述】:

我正在为某些网站设计一些“插件”,它们应该作为 iframe 嵌入其中。在此 iframe 内有一个可点击按钮,旨在更改 iframe 在父网站中的位置

由于事情是与父网站协调完成的,我也可以在那里添加一些代码。但是,我似乎 不能执行以下任何一项(其中一项就足够了):

  1. 从 iframe 访问 parent.document 中的数据,以便将 iframe 移动到所需位置。

  2. 从父网站,访问 iframe 中的数据,以检查按钮何时被点击。

两者通常都会产生错误:“阻止来自 XXX 的帧访问来自 YYY 的帧。协议、域和端口必须匹配”。

感谢任何建议(最好是代码示例)。

【问题讨论】:

    标签: javascript iframe cross-domain


    【解决方案1】:

    经过大量搜索,我发现了这个:
    http://www.codeproject.com/Tips/585663/Communication-with-Cross-Domain-IFrame-A-Cross-Bro

    我实际测试了该方法(使用我自己的一小段代码),它似乎可以在 Chrome、Firefox 和 IE 上运行。现在我要尝试“真正的”实现......

    【讨论】:

      【解决方案2】:

      根据您在问题中提供的信息,据我了解,跨域脚本是不可能的。您需要做的是提供一个脚本,父级网站可以将其粘贴到他们的模板/html 中并从他们的域中运行,类似于 Google 使用他们的分析系统所做的事情。

      作为替代方案,请尝试将您的 iframe 内容改为一个 div,该 div 加载了从父域向 iframe 域发出的服务调用的响应。您很可能需要创建一个请求站点可以使用的 API。只需在引用要在 iframe 中加载的页面时使用您将使用的任何参数调用该 URI,并让您在父网站上运行的脚本处理您想要实现的所有 DOM 更改。

      【讨论】:

        猜你喜欢
        • 2012-09-04
        • 2010-11-20
        • 2011-10-03
        • 1970-01-01
        • 1970-01-01
        • 2012-04-05
        • 2019-01-21
        • 2010-12-26
        相关资源
        最近更新 更多