浏览器选项卡知道何时被复制

Browser tab knows when it has been duplicated

我希望我的浏览器选项卡知道它何时被复制。

我见过的唯一类似的解决方案只关注重复的选项卡,知道它已被复制,或者原始选项卡知道它已被复制,但这只适用于 Chrome。

要求:

如果解决方案奖励:

您可以使用 Broadcast Channel API .

  1. 加载时创建频道并广播消息
  2. 使用 onmessage 事件,捕获消息,如果它与初始消息匹配,则广播另一个
  3. 重复的标签会收到第二个广播,而第一个标签会收到第一个广播

 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");
      }
    };