• 浏览器内多个标签页之间的通信之storage


    在一个标签页里面使用 localStorage.setItem(key,value)添加(修改、删除)内容; 
    在另一个标签页里面监听 storage 事件。 
    即可得到 localstorge 存储的值,实现不同标签页之间的通信(不同标签页,但可以为同一页面)。

     <style>
        #data, #fromEvent {
          width: 400px;
          height: 100px;
          border: 1px solid #666;
          margin: 50px auto 20px;
          padding: 10px;
        }
      </style>
    <div id="data" contenteditable="true"></div> <div id="fromEvent"></div> <button id="save">storage</button>
     
    var addEvent = (function() {
      if (document.addEventListener) {
        return function(el, type, fn) {
          if (el.length) {
            for (var i = 0; i < el.length; i++) {
              addEvent(el[i], type, fn);
            }
          } else {
            el.addEventListener(type, fn, false);
          }
        };
      } else {
        return function(el, type, fn) {
          if (el.length) {
            for (var i = 0; i < el.length; i++) {
              addEvent(el[i], type, fn);
            }
          } else {
            el.attachEvent('on' + type,
            function() {
              return fn.call(el, window.event);
            });
          }
        };
      }
    })();
     
    var dataInput = document.getElementById('data'),
       output = document.getElementById('fromEvent'),
       save = document.getElementById('save');

    addEvent(window, 'storage', function (event) {
      if (event.key == 'storage-event-test') {
        output.innerHTML ="key:"+event.key+" ---- old:"+event.oldValue+" ---- new:"+ event.newValue;
      }
    });

    addEvent(save, 'click', function () {
      localStorage.setItem('storage-event-test', dataInput.innerHTML);
    });

    ps: storage事件以file://打开无效,必须在服务器环境下才能成功

  • 相关阅读:
    DRF项目之视图获取路径参数
    DRF项目之层级关系
    DRF项目之序列化器和视图重写方法的区别
    DRF项目之自定义分页器
    DRF项目之实现用户密码加密保存
    DRF项目之通过业务逻辑选择数据集和序列化器
    DRF项目之自定义JWT认证响应数据
    PIP一次性导入所有环境和指定镜像源
    DRF项目之JWT认证方式的简介及使用
    DRF项目之解决浏览器同源策略问题
  • 原文地址:https://www.cnblogs.com/kdcg/p/9099331.html
Copyright © 2020-2023  润新知