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

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

在一个标签页里面使用 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://打开无效,必须在服务器环境下才能成功

每一次的记录,都是向前迈进的一步
目录
相关文章
|
4月前
|
存储
如何实现浏览器内多个标签页之间的通信
如何实现浏览器内多个标签页之间的通信
28 0
|
6月前
|
存储 移动开发 安全
Spartacus cart id 存储在浏览器 local storage 里面
Spartacus cart id 存储在浏览器 local storage 里面
40 0
|
2月前
|
存储 安全 前端开发
浏览器跨窗口通信:原理与实践
浏览器跨窗口通信:原理与实践
41 0
|
3月前
|
Web App开发 测试技术
软件测试/测试开发|edge浏览器首页及新标签页设置
软件测试/测试开发|edge浏览器首页及新标签页设置
48 0
|
4月前
|
JavaScript
js实现跨浏览器tab选项卡页通信、传参,监听localStorage.变量的实时变化,实现打开多个浏览器页面窗口相互可以传参通信
js实现跨浏览器tab选项卡页通信、传参,监听localStorage.变量的实时变化,实现打开多个浏览器页面窗口相互可以传参通信
|
5月前
|
Web App开发 视频直播
浏览器跨标签页通信、双向数据传输、实时通信有什么区别?
浏览器跨标签页通信、双向数据传输、实时通信有什么区别?
35 0
|
8月前
|
Web App开发 网络协议 前端开发
【从零学习python 】86. 深入了解HTTP协议及其在浏览器和服务器通信中的作用
【从零学习python 】86. 深入了解HTTP协议及其在浏览器和服务器通信中的作用
87 0
|
8月前
|
编解码 移动开发 C++
初识http协议,简单实现浏览器和服务器通信
初识http协议,简单实现浏览器和服务器通信
731 0
|
11月前
|
前端开发 JavaScript 开发者
进一步防止 Selenium 被检测——如何防止浏览器用新标签页打开链接?
进一步防止 Selenium 被检测——如何防止浏览器用新标签页打开链接?
130 0
前端如何设置浏览器网页标签页前的小图标favicon.ico
前端如何设置浏览器网页标签页前的小图标favicon.ico
917 0
前端如何设置浏览器网页标签页前的小图标favicon.ico

热门文章

最新文章