只要支持 localStorage 对象的地方都会支持storage 事件,包括 IE8。IE 8 不支持 W3C 的标准的 addEventListener(事实上这一函数在 IE 9 才被加入)。因此,为了监听 storage 事件,你需要检测浏览器支持哪种事件机制(如果你了解这个内容,就可以跳过这部分了。处理 storage 事件同其他时间一样。如果你使用 jQuery 或者其他 JavaScript 库的事件处理函数,那么你也可以这么处理 storage 事件。)
if (window.addEventListener) {
window.addEventListener("storage", handle_storage, false);
} else {
window.attachEvent("onstorage", handle_storage);
};handle_storage 回调函数接受一个 StorageEvent 参数。在 Internet Explorer 中,event 对象则存在 window.event 里面。
function handle_storage(e) {
if (!e) { e = window.event; }
}
此时,变量 e 就是一个 StorageEvent 对象。这个对象有很多有用的属性。
storage 事件不能取消。在 handle_storage 回调函数中,没有方法能够终止事件。浏览器只会简单地告诉你,“就是发生了!你现在什么也干不了了!我只是告诉你,它就是发生了。”