跨域iFrames通信问题

时间:2010-04-02 11:36:53

标签: javascript html iframe

  • 我有一个页面A,其中包含2个名为B和C的儿童iFrame。
  • A和B位于不同的域名。
  • 按B中的按钮我想更改C的URL。

基于Michael Mahemoff的law III它应该可以工作,但事实上它不起作用(js安全性错误)。

以下是B中的JS代码:

window.parent.frames['C'].location.href = "http://random.url";

2 个答案:

答案 0 :(得分:3)

这不起作用,因为第B帧无法访问第A页中的frames集合。

我想不出任何解决方法(除了设置document.domain

答案 1 :(得分:0)

如果页面和&框架不在同一个域中,您必须使用postmessage,它是html5和works in all modern browsers (including IE8)的一部分。

如果您需要支持旧浏览器(特别是IE6 / 7),您可以使用jQuery postmessage plugin(对于旧版浏览器,它会透明地回退到一些不错的哈希标记技巧)。