­

实现同一页面多tab时的状态同步

  • 2019 年 12 月 26 日
  • 筆記

不同tab的js执行环境是不同的,因此变量不会共享,watcher也不会互相影响。

可以利用 storage事件监控localstorge的变化 ,storege事件只能注册在window上

创建两个页面 A和B 分别在不同的Tab打开

<!DOCTYPE html>  <html>    <head lang="en">    <title>A</title>  </head>    <body>    <script>      window.addEventListener("storage", function (e) {        alert(e.newValue);      });    </script>  </body>    </html>
<!DOCTYPE html>  <html>  <head lang="en">      <title>B</title>  </head>  <body>  <script>      localStorage.clear();      localStorage.setItem('foo', 'bar');  </script>  </body>  </html>