监听sessionStorage中值的变化

x33g5p2x  于9个月前 转载在 其他  
字(0.7k)|赞(0)|评价(0)|浏览(383)

应用场景:将登录接口所返回的用户信息存入sessionStorage,在其他地方需要使用到用户信息,但不知道什么时候接口请求完,此时可以监听sessionStorage中值的变化。
应用:Event自定义事件 window.dispatchEvent();事件分发

  1. var orignalSetItem = sessionStorage.setItem;
  2. sessionStorage.setItem = function(key, newValue) {
  3. var setItemEvent = new Event("setItemEvent");
  4. setItemEvent.newValue = newValue;
  5. window.dispatchEvent(setItemEvent);
  6. orignalSetItem.apply(this, arguments);
  7. };
  8. // 获取sessionStorage中需要监听的值loginInfor
  9. var info = sessionStorage.getItem("loginInfor");
  10. if (info) { // 符合条件
  11. console.log(info);
  12. } else {
  13. // 否则继续监听
  14. window.addEventListener("setItemEvent", function(e) {
  15. if ((e.key = "loginInfor")) {
  16. var _this = sessionStorage.getItem("loginInfor");
  17. if (_this != e.newValue) {
  18. if (e.newValue) {
  19. console.log(e.newValue);
  20. console.log(_this);
  21. }
  22. }
  23. }
  24. });
  25. }

相关文章