bri*_*out 69 javascript html5 web-applications postmessage local-storage
我有两个窗口:窗口A和窗口B.
问题:
我知道这样做的两种方式:
但这两种方式并不那么优雅.
例如,获得窗口B的引用并使用window.postMessage()(HTML5)会很不错
最终的目标是制作像facebook这样的东西,如果你打开4个Facebook标签并在一个标签中聊天,聊天是最新的每个Facebook标签,这是整洁的!
bri*_*out 108
我坚持使用问题中提到的共享本地数据解决方案localStorage.它似乎是可靠性,性能和浏览器兼容性方面的最佳解决方案.
localStorage 在所有现代浏览器中实现.
storage当其他选项卡进行更改时,事件将触发localStorage.这对于通信目的非常方便.
参考资料可以在这里找到:
Webstorage
Webstorage - 存储事件
Joe*_*ard 24
BroadcastChannel标准允许这样做.现在它在Firefox和Chrome(caniuse,mdn)中实现:
// tab 1
var ch = new BroadcastChannel('test');
ch.postMessage('some data');
// tab 2
var ch = new BroadcastChannel('test');
ch.addEventListener('message', function (e) {
console.log('Message:', e.data);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59561 次 |
| 最近记录: |