我想让两个窗口使用 window.postMessage 进行通信。但是这些窗口没有初始连接——一个不是另一个的 iframe。有没有什么办法可以让这两个窗口“找到”对方,以便他们可以通信?窗口似乎没有任何方法可以通过“名称”查找另一个窗口。我可以安排两者在同一个域中设置 cookie,但无法将对象/指针放入 cookie。
问问题
137 次
1 回答
1
我错了!HTML5 周刊刚刚问世,并包含了一篇文章的链接,该文章解决了这个确切的问题。
该技术利用localStorage
同一域上的所有窗口共享的可观察和可修改资源。事实证明,Facebook 和 Google 多年来一直在这样做!
有一个演示(并排在几个窗口中打开,这非常令人兴奋),代码非常易读,但核心机制如下:
广播事件
window.localStorage.setItem('key', value);
监听事件
window.addEventListener('storage', function(event){
var message = event.newValue;
}
被这个吓坏了。我将不得不以某种方式自己实现这一点。
于 2013-03-13T13:34:56.377 回答