Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不带窗口引用的HTML5 postMessage_Javascript_Html_Postmessage - Fatal编程技术网

Javascript 不带窗口引用的HTML5 postMessage

Javascript 不带窗口引用的HTML5 postMessage,javascript,html,postmessage,Javascript,Html,Postmessage,HTML5允许在window opener和openee之间发送消息。但是,它需要参考/链接到接收器窗口 是否有一种纯客户端JavaScript方式可以在没有服务器帮助的情况下,在同一DOAMINAME下,将事件广播给所有窗口订阅者,由用户(例如复制选项卡)在同一会话中打开 现在,我想不出什么主意 服务器端通道(按$\u会话)和轮询 JS烹饪更新和轮询(硬cookie播放) 本地存储更新和轮询(甚至最差) WebRTC?(浏览器支持差) 有我错过的API吗 顺便说一句,不需要跨域。我想到的是

HTML5允许在window opener和openee之间发送消息。但是,它需要参考/链接到接收器窗口

是否有一种纯客户端JavaScript方式可以在没有服务器帮助的情况下,在同一DOAMINAME下,将事件广播给所有窗口订阅者,由用户(例如复制选项卡)在同一会话中打开

现在,我想不出什么主意

  • 服务器端通道(按$\u会话)和轮询
  • JS烹饪更新和轮询(硬cookie播放)
  • 本地存储更新和轮询(甚至最差)
  • WebRTC?(浏览器支持差)
有我错过的API吗


顺便说一句,不需要跨域。我想到的是同一个域,多个域由用户打开。

正在寻找解决方案

我最终使用了(甚至不是sessionStorage)并使用onstorage触发我的事件处理程序


某些浏览器(我是说IE)上的会话隔离存在一些问题,会话存储的更改可能会也可能不会发送到另一个窗口。同时,本地存储做得更好。

只需使用
window.postMessage(“whatever”、“whatever”)。如果您使用
窗口。
,它会广播…如果您使用另一个窗口引用,它只针对该窗口引用。我很肯定。你费心测试了吗?这里有一点可能比实际规范更容易理解:事实上,我撒谎了。我不知道为什么我会这么想。我想我从来没有真正测试过它,但是的,它看起来像你不能广播。我不确定它是否有用,但您可以看看:-第二个答案建议使用一个非常酷的库,它利用了
存储
事件