跨域散列更改通信

Joh*_*ohn 4 html javascript iframe cross-domain hashchange

请考虑以下两个域:domain1.com和domain2.

从domain1我打开一个指向domain2的iframe.

现在,我希望这些人能够相互通信,我通过在两个域上应用散列更改事件侦听器成功完成了这些操作.

这样,如果domain2使用新哈希调用parent.location,则将触发父窗口(domain1)中的哈希.此外,如果来自父级的I将其src属性更改为新哈希,则哈希更改事件将在iframe中触发.

这很棒!

麻烦来了:

浏览器中的后退和前进功能搞砸了.简单地说,通过创建两个哈希实例,必须单击浏览器后退按钮两次才能更改父哈希,因为它必须首先循环遍历iframe的哈希.

如何在不搞砸历史对象的情况下与跨域iframe 2路进行通信?

谢谢!

Sea*_*sey 7

使用easyXDM,它是一个为您完成所有艰苦工作的JavaScript库,使您能够在所有浏览器(包括IE6)中进行跨域通信和RPC.

这不会将HashTransport用于任何当前浏览器(甚至不是IE6),因此不会更改历史记录.

你找不到更好的东西..

你可以在这篇Script Junkie文章中阅读它的一些内部工作原理,或直接阅读github上的自述文件