浏览器跨标签通讯

localStorage会触发一个事件,不论其中的哪一项在另一个浏览上下文里被添加、修改或删除时,它都会触发一个事件。

不论在哪个浏览器的标签页里访问了 localStorage,所有其它的标签页都能通过 window 对象监听到这个事件,如下:  

属性描述
key localStroage 中被影响的键
newValue 为这个键所赋的新值
oldValue 这个键修改前的值
url 当前发生改变的页面 URL

不论某个标签页在何时修改了 localStorage,都会对其余的所有标签触发事件。这就意味着我们只要为 localStorage 赋值,就能够跨浏览器标签通信了。请看下面伪代码风格的示例: 

 

local-storage@1.3.1 中最新的 API 端点(译者注:2015-01-08) 如下:

  • ls(key, value?) 取得或设置键
  • ls.get(key) 取得键的值
  • ls.set(key, value) 为键指定值
  • ls.remove(key) 移除键
  • ls.on(key, fn(value, old, url)) 监听其它标签页的键值改变并触发 fn
  • ls.off(key, fn) 取消之前使用 ls.on 注册的监听器

local-storage 注册了一个单一的 storage 对象处理器并保持你对每个键的跟踪,而不是注册多个 storage 对象。

请把你的疑问评论在下方。
原文地址:https://www.cnblogs.com/zzcit/p/6045743.html