跨域JavaScript iFrame-parent访问被阻止

时间:2013-12-30 07:45:07

标签: javascript iframe cross-domain

我正在为某些网站设计一些“附加组件”,这些网站应作为iframe嵌入其中。在这个iframe中有一个可点击按钮,旨在更改父网站中iframe的位置

由于事情是与父网站协调完成的,我也可以在那里添加一些代码。然而,似乎我能够做到以下两种情况(其中一个应该足够):

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

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

  3. 两者通常都会产生错误:“阻止带有原始XXX的帧访问源YYY的帧。协议,域和端口必须匹配”。

    赞赏任何建议(最好是代码示例)。

2 个答案:

答案 0 :(得分:1)

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

我实际上测试了该方法(使用我自己的短代码),它似乎适用于Chrome,Firefox和IE。现在我要尝试“真正的”实施......

答案 1 :(得分:0)

据我所知,根据您在问题中提供的信息,无法进行跨域脚本编写。您需要做的是提供一个脚本,父级网站可以将其粘贴到他们的模板/ html中并从他们的域运行,类似于Google对其分析系统的处理方式。

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