您可以使用LocalStorage在选项卡进行通信。每次写一个值时,每个选项卡上的窗口对象上都会触发一个“存储”事件(当前一个选项卡除外)。
http://diveintohtml5.info/storage.html
向下滚动到“跟踪HTML5存储区域的变化”
该活动将包括 event.key
, event.newValue
, event.oldValue
.
这仅在现代浏览器中起作用。
题
是否可以找到某些网站的外国实例? OFC Theese是独立打开的选项卡(不是通过window.open)。我需要防止用户打开2个选项卡,并将消息发送到先前打开的选项卡,以告知不可能打开2个标签。 2个无关的选项卡可能会破坏页面离线存储和WebSQL结构,因此我不能允许人们使用2个选项卡。它也是半官方应用程序,因此需要是客户端解决方案。
解决方案
您可以使用LocalStorage在选项卡进行通信。每次写一个值时,每个选项卡上的窗口对象上都会触发一个“存储”事件(当前一个选项卡除外)。
http://diveintohtml5.info/storage.html
向下滚动到“跟踪HTML5存储区域的变化”
该活动将包括 event.key
, event.newValue
, event.oldValue
.
这仅在现代浏览器中起作用。
其他提示
LocalStorage可用于跟踪Windows。您应该考虑到窗户崩溃的情况 - 它将将垃圾留在LocalStorage中。可以根据localstorage同时从几个Windows访问几个Windows的公共资源。
我最近发表了 InterWindow通信库 (所有功能均在readme中描述)。它提供线程安全数据共享,跨窗口锁和事件广播。它还解决了一些IE问题。
广播频道是设计的https://developer.mozilla.org/en-us/docs/web/api/broadcast_channel_api
但是本地API仅支持现代浏览器。 NPM软件包也支持所有旧浏览器https://www.npmjs.com/package/broadcast-channel
您无法控制这一点。用户基本上可以在计算机上做任何他/她想要的事情。