计算机系统应用教程网站

网站首页 > 技术文章 正文

两个网页,改变A页面,在B页面怎么监听到同一个localStorage变化

btikc 2024-09-27 01:10:24 技术文章 3 ℃ 0 评论

需求:路由跳转的时候,他是通过window.open新开了一个网页去跳转的,但新(B)页面会有一些操作,改变了A页面的数据,但B页面并不能关闭回到A,需要A同步请求接口刷新数据。

解决方法一:我同事告诉我用vuex,但没操作成功,好像是B页面和A页面不是一个vue实例了,所以根本不行

解决方法二:我想到了用本地存储localStorage,虽然俩页面可以同步看到localStorage的变化,但监听是个问题,最后在网上解决了。

在A页面:
window.addEventListener("storage", function (e) {
        alert(e.newValue);
  		//这个e.newValue  就能看到改变的localStorage的新值
});

还有一个没有测试的方法,应该也是可以的,用了简洁的,就没有用繁琐的:
//通过再次设置setItem
var orignalSetItem = localStorage.setItem;
localStorage.setItem = function(key,newValue){
      var setItemEvent = new Event("setItemEvent");
      setItemEvent.newValue = newValue;
      window.dispatchEvent(setItemEvent);
      orignalSetItem.apply(this,arguments);
}
window.addEventListener("setItemEvent", function (e) {
    alert(e.newValue);
});
localStorage.setItem("name","wang");


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表