如何在浏览器关闭但不刷新时清除本地存储
How to clear local storage on browser close but not refresh?
我的要求是:
-
必须检测浏览器关闭事件,并且不应在页面刷新时执行。
-
如果代码只在浏览器关闭时工作,那么必须清除本地存储。
-
我已经尝试了onbeforeunload,但它正在执行浏览器关闭事件和页面刷新事件。
-
所以我的代码只适用于浏览器关闭事件,而不适用于页面刷新(F5或单击刷新符号)。
您无法区分关闭的浏览器和刷新页面的窗口/选项卡。这些信息根本不可用。
对于您的特定用例,听起来您可以使用会话存储而不是本地存储。会话存储的点是,当用户完成页面操作时,它将过期。你可以试试这个例子:
display("Existing <code>sessionStorage.foo</code>: " + sessionStorage.foo);
sessionStorage.foo = new Date().toISOString();
display("New value set: " + sessionStorage.foo);
对我来说,在Firefox、Chrome和IE9(大概是IE9+)上,刷新并不能清除会话存储,但关闭选项卡可以。
或者,您可以在卸载页面时(从onbeforeunload
)在本地存储中设置一个时间戳,并且在将来返回页面时,如果该时间戳已经过期,则清除存储并重新启动。当你离开页面时,这不会清除商店,但会像你在一段时间后回来时一样执行。
只有浏览器关闭时,不会触发任何事件。最接近的是onbeforeunload事件,该事件在窗口即将卸载其资源时发出。
相关文章:
- 如何使用javascript刷新我的html页面时清除按钮单击
- 如何在提交表单后清除以前的文本字段值而不刷新整个页面
- jQueryFileTree如何清除实例、重新实例化新实例或刷新
- 刷新后将清除筛选器
- 停止页面刷新 - 无法使用清除功能
- 跨域刷新后会清除会话值
- 清除所有表单字段后刷新页面(jquery)
- 清除文本框而不刷新页面
- 如何在浏览器关闭但不刷新时清除本地存储
- 如何按F5键或刷新页面清除文本框中输入的值?(不使用btnReset)
- 刷新,在ajax请求中动态清除JQuery选择插件
- localStorage在刷新后被清除
- 清除Jquery css更改的大小刷新
- 使用清除在一个页面中实现多个自动刷新数据绑定
- 如何在刷新整个页面后清除下拉列表框.使用asp.net mvc
- 清除选项卡上的localStorage /浏览器关闭,但不刷新
- 在angular js中,点击刷新按钮时无法清除细节
- 使用javaScript或jquery在页面刷新时清除缓存
- 如何刷新过滤搜索时的“清除”按钮;在文本的边缘点击
- 问题刷新/清除Jquery中更改时事件的选择列表