@Wangww0925
2020-06-18T05:33:07.000000Z
字数 1488
阅读 306
js-存储
sessionStorage(长期存储): 关闭浏览器及关闭
/*** 保存数据到本地* 参数name sessionStorage的名称data 存储数据isTrue true-同页面可以监听,false-同页面无法监听*/function setSessionStorage(name,data,isTrue){if(isTrue){var orignalSetItem = window.sessionStorage.setItem;window.sessionStorage.setItem = function(key,newValue){var setItemEvent = new Event("setItemEvent");setItemEvent.newValue = newValue;setItemEvent.key = key;window.dispatchEvent(setItemEvent);orignalSetItem.apply(this,arguments);}}window.sessionStorage.setItem(name, data);}/*** 从本地存储获取数据* 参数name sessionStorage的名称*/function getSessionStorage(name){var getValue = sessionStorage.getItem(name);return getValue}/*** 本地存储中删除某个保存的数据* 参数name sessionStorage的名称*/function delSessionStorage(name){window.sessionStorage.removeItem(name);}// 清空sessionStoragefunction clearSessionStorage(){window.sessionStorage.clear();}/*** 监听sessionStorage的变化* 参数callback 回调isTrue true-监听当前页面,false-监听其他页面*/function listenSessionStorage(callback,isTrue){if (!sessionStorage.length) {// 这个调用能触发目标事件,从而达到共享数据的目的localStorage.setItem('getSessionStorage', Date.now());};if(isTrue){window.addEventListener("setItemEvent", function (e) {// console.log(e);// console.log('key', e.key);// console.log('oldValue', e.oldValue);// console.log('newValue', e.newValue);// console.log('url', e.url);callback(e)});}else{window.addEventListener("storage", function (e) {// console.log('key', e.key);// console.log('oldValue', e.oldValue);// console.log('newValue', e.newValue);// console.log('url', e.url);callback(e)})}}
作者 wendy
2019 年 5月 23日
