浏览器关闭怎么清除localstorage

浏览器关闭怎么清除localstorage。

因为sessionstorage不能跨窗口,所以用localstorage,但是又想实现关闭浏览器清除localstorage的功能。

请问有没有什么方法实现。。或是有什么其他方法替代localstorage。

阅读 43.1k
12 个回答
window.onunload=function(){
    localStorage.clear();
}

利用浏览器的关闭事件执行localStorage的清楚方法即可!

localstorage是永久缓存的。记得以前有人回答过这个问题localstorage

localStorage.clear();

................
补充:sorry,我看错了,其实方法都差不多,我写的是react
具体的就是使用窗口浏览器关闭事件。
这个react写的亲测有效,我测试过了。我再写一个js吧。

window.onunload=function(){
        localStorage.clear();
}
 componentDidMount() {
     window.addEventListener('unload', this.handleUnload);
     }
     componentWillUnmount() {
     window.removeEventListener('unload', this.handleUnload);
     }
     handleUnload(){
        localStorage.clear();
     }

为何不用sessionStorage

新手上路,请多包涵

你好,遇到了同样的问题,请问你解决了吗

你好,不知道现在解决了么,或者有什么可以替代的么?

没法解决吗,怎么处理比较好呢

新手上路,请多包涵

遇到了同样的问题, 建议使用cookie,cookie的生命周期和浏览器是一样的,浏览器关闭了cookie就销毁了。localStorage和sessionStrage两个是两个极端,一个删不掉,一个不能跨页面。cookie虽然只能存4kb,但也够了!

因为sessionstorage不能跨窗口,所以用localstorage,但是又想实现关闭浏览器清除localstorage的功能。

为什么不通过 URL传参 的方式跨窗口传值呢?

新手上路,请多包涵

要实现这个需求只需在原来的基础上利用一下cokies就行了。实现思路是利用cokies的特性(浏览器关闭会清除cokies),所以说只需要在呢一开始需要绑定localstorage时,设置一个cokies,然后在一个全局js文件里判断一下是否存在这个cokies,不存在就清空local。
设置cokies:
document.cookie="loginState="+'xxxxx';
判断colies:
let loginState=document.cookie.split(";")[0].split("=")[1];
if(loginState == undefined){
document.cookie="loginState="+'';
localStorage.clear()
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题