1

是否可以找到某些网站的外国实例?这些是独立打开的选项卡(不是通过 window.open)。我需要阻止用户打开 2 个选项卡,并向之前打开的选项卡发送消息,告知无法打开 2 个选项卡。2 个独立的选项卡可能会破坏页面离线存储和 webSQL 结构,所以我不能让人们使用 2 个选项卡。它也是半离线应用程序,因此它需要是客户端解决方案。

4

5 回答 5

2

您可以使用 localStorage 跨选项卡进行通信。每次写入值时,都会在每个选项卡上的窗口对象上触发一个“存储”事件(当前选项卡除外)。

http://diveintohtml5.info/storage.html

向下滚动到“跟踪 html5 存储区域中的更改”

该事件将包括event.key, event.newValue, event.oldValue

这仅适用于现代浏览器。

于 2013-12-03T15:23:49.947 回答
1

在 2021 年,您可以使用 Service Worker:

https://github.com/gyteng/service-worker-event

注意:Service Worker 仅适用于https协议

于 2021-03-20T03:53:35.470 回答
0

localStorage 可用于跟踪窗口。您应该考虑窗口崩溃时的情况 - 它会将垃圾留在 localStorage 中。可以通过基于 localStorage 的互斥锁同时从多个窗口访问公共资源。

我最近发布了窗口间通信库(所有功能都在自述文件中描述)。它提供线程安全的数据共享、跨窗口锁和事件广播。它还解决了一些 IE 问题。

于 2015-01-11T17:49:46.457 回答
0

广播频道是为此设计的 https://developer.mozilla.org/en-US/docs/Web/API/Broadcast_Channel_API

但原生 api 只支持现代浏览器。有一个 npm 包也支持所有旧浏览器 https://www.npmjs.com/package/broadcast-channel

于 2021-12-21T09:40:53.463 回答
-1

你无法控制它。用户基本上可以在计算机上做他/她想做的任何事情。

于 2013-11-06T22:44:39.783 回答