请考虑以下两个域:domain1.com 和 domain2。
我从 domain1 打开一个指向 domain2 的 iframe。
现在,我希望这些人能够相互交流,我已经通过在两个域上应用哈希更改事件监听器成功地实现了这一点。
这样,如果域 2 使用新哈希调用 parent.location,父窗口 (domain1) 中的哈希将被触发。此外,如果我从父级将其 src 属性更改为新哈希,则哈希更改事件会在 iframe 中触发。
效果很好!
麻烦来了:
浏览器中的后退和前进功能变得困惑。简单地说,通过创建两个哈希实例,浏览器后退按钮必须被点击两次才能让父哈希发生变化,因为它必须首先循环通过 iframe 的哈希。
如何在不搞砸历史对象的情况下与跨域 iframe 进行双向通信?
谢谢!
最佳答案
使用easyXDM ,它是一个 javascript 库,可以为您完成所有繁重的工作,使您能够在所有浏览器(包括 IE6)中进行跨域通信和 RPC。
这不会为当前的任何浏览器(甚至不是 IE6)使用 HashTransport,因此不会更改历史记录。
你不会找到更好的..
您可以在 Script Junkie article 中了解它的一些内部工作原理,或直接转到 readme at github
关于javascript - 跨域哈希变化通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4122422/