浏览器选项卡知道何时被复制
Browser tab knows when it has been duplicated
我希望我的浏览器选项卡知道它何时被复制。
我见过的唯一类似的解决方案只关注重复的选项卡,知道它已被复制,或者原始选项卡知道它已被复制,但这只适用于 Chrome。
要求:
- 解决方案适用于所有现代浏览器
如果解决方案奖励:
- 适用于某个版本的 Internet Explorer
- 使用一些本机 Angular 功能
您可以使用 Broadcast Channel 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");
}
};
我希望我的浏览器选项卡知道它何时被复制。
我见过的唯一类似的解决方案只关注重复的选项卡,知道它已被复制,或者原始选项卡知道它已被复制,但这只适用于 Chrome。
要求:
- 解决方案适用于所有现代浏览器
如果解决方案奖励:
- 适用于某个版本的 Internet Explorer
- 使用一些本机 Angular 功能
您可以使用 Broadcast Channel 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");
}
};