帮助浏览器窗口集合window.postmessage

时间:2013-03-07 17:01:49

标签: javascript html5

我想使用window.postMessage启用两个窗口进行通信。但是这些窗口没有初始连接---一个不是另一个的iframe。有没有办法让这两个窗口相互“找到”,以便他们可以通信?窗口似乎没有任何方法可以通过“名称”查找另一个窗口。我可以安排在同一个域中设置cookie,但是没有办法将对象/指针放在cookie中。

1 个答案:

答案 0 :(得分:1)

我错了! HTML5 weekly刚出来,其中包含指向an article solving this exact problem的链接。

该技术使用localStorage作为同一域上所有窗口共享的可观察和可修改资源。事实证明,Facebook和谷歌多年来一直在这样做!

There's a demo(在几个窗口中并排开启,非常令人兴奋)具有非常易读的代码,但中心机制如下:

广播活动

window.localStorage.setItem('key', value);

倾听事件

window.addEventListener('storage', function(event){
    var message = event.newValue;
}

被这个吹走了。我将不得不以某种方式实现这一点。