You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅在浏览器关闭时清除localStorage指定键,刷新页面时不清除

根因分析
  • window.onbeforeunload 事件会在所有页面卸载场景下触发,包含页面刷新、页面跳转、关闭标签页/浏览器,所以你写的删除逻辑会在刷新时也执行,自然两种场景都会清除mykey。
  • 你注释删除逻辑后功能符合预期的核心原因是:sessionStorage 本身的原生特性就完全匹配你的需求——同一标签页下刷新会保留存储内容,只有当前标签页/浏览器彻底关闭时,对应sessionStorage会被浏览器自动销毁,根本不需要手动写删除逻辑。
最终解决方案

直接删除你编写的beforeunload清除逻辑,全程用sessionStorage读写mykey即可,原生机制就能实现「刷新保留、关闭浏览器自动清除」的效果。

切换sessionStorage后问题仍存在的排查方向
  • 检查是否打开了多个同域名标签页:sessionStorage是标签页隔离的,如果你是从当前标签页通过_blank打开的同域名新标签,新标签会复制当前标签的sessionStorage,二者销毁逻辑互不干扰。
  • 检查页面初始化逻辑中是否有误清空sessionStorage、或者mykey赋值覆盖的错误逻辑。
  • 检查浏览器是否开启了「退出时自动清除所有站点数据」的隐私配置,或者当前使用无痕模式浏览,这类特殊配置会覆盖sessionStorage的默认存储规则。

内容的提问来源于stack exchange,提问作者sukesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 00:15:10