我想让我的浏览器选项卡知道它何时被复制。
我见过的唯一类似的解决方案集中在知道重复的选项卡上,或者原始选项卡知道重复,但这只适用于Chrome。
要求:
- 解决方案适用于所有现代浏览器
如果解决方案:,则奖金
- 适用于Internet Explorer版本
- 使用一些原生Angular功能
您可以使用广播频道API。
- 在加载时创建一个频道并广播消息
- 使用
onmessage
事件,捕获消息,如果与初始消息匹配,则广播另一个消息 - 重复标签将接收第二个广播,而第一个标签将接收第一个广播
const broadcast = new BroadcastChannel('test')
broadcast.postMessage('I am First');
broadcast.onmessage = (event) => {
if (event.data === "I am First") {
broadcast.postMessage(`Sorry! Already open`);
alert("First Tab");
}
if (event.data === `Sorry! Already open`) {
alert("Duplicate Tab");
}
};