Skip to content

多 tab 页相互通信方式

  1. 使用 LocalStorage:这个存储 API 可在浏览器的不同标签页之间共享数据。当一个标签页发送消息时,将消息存储在 LocalStorage 中。其他标签页可以监听该存储区的变化,并读取最新的消息内容来实现通信效果。
js
// 监听变化
window.addEventListener('storage', (e) => {
  // todo ...
})
  1. 使用 Broadcast Channel API:Broadcast Channel API 可以在浏览器的不同上下文(包括不同的标签页)之间进行双向通信。当一个标签页发送消息到广播频道时,其他标签页可以通过监听相同的广播频道来接收和响应消息。
  2. 使用 SharedWorker:SharedWorker 是一种在多个浏览器上下文之间共享脚本执行的机制,它可以在不同的标签页之间进行通信。可以创建一个 SharedWorker,然后在各个标签页中连接到该 SharedWorker,使它们能够共享数据和通信。

以上方法都可以实现在本地多个标签页之间进行通信,但需要根据具体需求和项目情况选择适合的解决方案。需要注意的是,这些方法只适用于本地通信,无法实现跨网络的实时通信效果,若需要实现更复杂的聊天室功能,WebSocket 仍是更常用的选择。

hancenter808@outlook.com