如何实现浏览器内多个标签页之间的通信?
调用 localstorge、cookies 等本地存储方式
方法一:使用localStorage
使用localStorage.setItem(key,value)添加内容
使用storage事件监听添加、修改、删除的动作
window.addEventListener("storage",function(event){ console.log(event.key+"="+event.newValue); });
注意:
1,storage事件只有在两个同源的网页之间改变动作触发,在同一个网页改变无法触发。
2,sessionStorage 和 localStorage具有相同的方法storage事件,在存储事件的处理函数中是不能取消这个存储动作的。存储事件只是浏览器在数据变化发生之后给 你的一个通知。当setItem(),removeItem()或者clear() 方法被调用,并且数据真的发生了改变时,storage事件就会被触发。注意这里的的条件是数据真的发生了变化。也就是说,如果当前的存储区域是空的,你 再去调用clear()是不会触发事件的。或者你通过setItem()来设置一个与现有值相同的值,事件也是不会触发的。
方法二,使用cookie+setInterval
1,第一个网页设置cookie
2,第二个网页通过setInterval轮训获取cookie值