公司网站建设的,网页logo,个人博客网页制作代码,wordpress怎么去掉文本下划线分析
引用《h5移动web开发指南》上的话#xff1a; “当同源页面的某个页面修改了localStorage,其余的同源页面只要注册了storage事件#xff0c;就会触发” 所以#xff0c;localStorage的例子运行需要如下条件#xff1a;
同一浏览器打开了两个同源页面其中一个网页修…分析
引用《h5移动web开发指南》上的话 “当同源页面的某个页面修改了localStorage,其余的同源页面只要注册了storage事件就会触发” 所以localStorage的例子运行需要如下条件
同一浏览器打开了两个同源页面其中一个网页修改了localStorage另一网页注册了storage事件
很容易犯的错误是在同一个网页修改本地存储又在同一个网页监听这样是没有效果的。
例子
网页A监听了storage事件
!DOCTYPE html
html
head langentitleA/title
/head
body
scriptwindow.addEventListener(storage, function (e) {alert(e.newValue);});
/script
/body
/html
网页B修改了localStorage
!DOCTYPE html
html
head langentitleB/title
/head
body
scriptlocalStorage.clear();localStorage.setItem(foo, bar);
/script
/body
/html
运行 将上面两个网页保存放到同一个服务器上然后先打开A.html再打开B.html。就会看到A.html会弹出提示框。注意两个网页要同源。
扩展
如果非得要在同一网页监听怎么办可以重写localStorage的方法抛出自定义事件
!DOCTYPE html
html
head langentitleA/title
/head
body
scriptvar orignalSetItem localStorage.setItem;localStorage.setItem function(key,newValue){var setItemEvent new Event(setItemEvent);setItemEvent.newValue newValue;window.dispatchEvent(setItemEvent);orignalSetItem.apply(this,arguments);}window.addEventListener(setItemEvent, function (e) {alert(e.newValue);});localStorage.setItem(nm,1234);
/script
/body
/html