当前位置: 首页 > 知识库问答 >
问题:

javascript - 前端如何实现 js 中在两个浏览器tab 中如何实现实时通信呢?

黄仲渊
2023-07-27

意思就是想要两个 tab页同时能获取到一个状态的更改。比如在 A 页面改的状态,在 B 页面也可以同时获取到

共有3个答案

段干跃
2023-07-27

如果是同源的话,走 service worker 即可,很适合通知类应用场景。

赵英资
2023-07-27

共享SessionStorage

<script>    ; (function () {      if (!sessionStorage.length) {        // 这个调用能触发目标事件,从而达到共享数据的目的        localStorage.setItem('getSessionStorage', Date.now())      }      // 该事件是核心      window.addEventListener('storage', function (event) {        if (event.key == 'getSessionStorage') {          // 已存在的标签页会收到这个事件          localStorage.setItem('sessionStorage', JSON.stringify(sessionStorage))          localStorage.removeItem('sessionStorage')        } else if (event.key == 'sessionStorage' && !sessionStorage.length) {          // 新开启的标签页会收到这个事件          var data = JSON.parse(event.newValue),            value          for (key in data) {            sessionStorage.setItem(key, data[key])          }        }      })    })()  </script>
郑松
2023-07-27

刚好做过类似的事,可以看看
https://segmentfault.com/a/1190000025142602

 类似资料:
  • 在web应用开发中都有报表打印等需求。不少开发者的做法是在后台生成PDF文件,然后通过浏览器显示浏览。现代浏览器大都支持PDF显示、打印,但是不支持静默打印,因此带给最终用户的体验不好。浏览器如何实现静默打印PDF呢?

  • 本文向大家介绍如何实现浏览器内多个标签页之间的通信?相关面试题,主要包含被问及如何实现浏览器内多个标签页之间的通信?时的应答技巧和注意事项,需要的朋友参考一下 通过WebSocket或SharedWorker把客户端和服务器端建立socket连接,从而实现通信;也可以调用localstorge、cookies等本地存储方法  

  • 我正在用Java开发selenium webdriver。我想打开一个浏览器,在其中执行一些操作。然后打开另一个浏览器并在其中执行相同的操作,然后返回到第一个浏览器并执行一些操作。

  • js中如何实现快速排序?guolguul都不会放

  • 本文向大家介绍如何在JavaScript中实现多态?,包括了如何在JavaScript中实现多态?的使用技巧和注意事项,需要的朋友参考一下 多态性 多态 是面向对象编程(OOP)的宗旨之一。它有助于设计对象,使其可以与特定提供的对象共享或覆盖任何行为。多态性 利用继承的 优势来实现这一点。 在以下示例中,子对象(例如“板球”和“网球”)已覆盖从父对象“游戏”调用的“选择”方法,并分别返回了新字符串

  • 本文向大家介绍举例说明如何实现浏览器桌面通知?相关面试题,主要包含被问及举例说明如何实现浏览器桌面通知?时的应答技巧和注意事项,需要的朋友参考一下 websocket加以 Desktop Notification