js 如何监听localstorage事件

最近在做项目的时候需要监听localstorage的变化,使用默认的storage时间发现无效,从网上找到一种解决办法,这个方案重写了Localstorage事件,只要发生变化就会触发定义的方法,刚好能满足需求,代码如下供参考。

index.vue


created() {

// window.addEventListener("storage",aaa)

obj.render(function(d){

debugger

});

},


index.js


let obj = {
  _cb: null,
  render(cb) {
    this._cb = cb
    this.addEvent(cb)
    // localStorage.setItem("PageEngineFormInputData", 123)
  },
  addEvent(cb) {
    var orignalSetItem = localStorage.setItem;

    localStorage.setItem = function (key, newValue) {
      var setItemEvent = new Event(cb);

      setItemEvent.newValue = newValue;
      setItemEvent.newValuekey = key;

      window.dispatchEvent(setItemEvent);

      orignalSetItem.apply(this, arguments);
    };

    window.addEventListener(cb, function (e) {
      // debugger
      conso
如若转载请注明原文及出处:https://www.dsiab.com/post/10774d8b-56e6-440d-a7f0-bf3bd548a162
本站文章由javascript技术分享原创和收集,内容如有问题,请联系站长删除。

评论: