我想使用window.postMessage启用两个窗口进行通信。但是这些窗口没有初始连接---一个不是另一个的iframe。有没有办法让这两个窗口相互“找到”,以便他们可以通信?窗口似乎没有任何方法可以通过“名称”查找另一个窗口。我可以安排在同一个域中设置cookie,但是没有办法将对象/指针放在cookie中。
答案 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;
}
被这个吹走了。我将不得不以某种方式实现这一点。