Javascript浏览器关闭事件
您好,我使用localStorage存储变量的值。问题是localStorage从未从我在internet上找到的内容重置。我对在浏览器关闭时重置localStorage感兴趣 有办法吗 我尝试过使用$(window)。从jQuery卸载,但这会检测到与窗口相关的更改,并且会很快将localStorage变量重置为。阅读我在其中解释了如何检测浏览器关闭,$(window)。卸载并不总是起作用Javascript浏览器关闭事件,javascript,jquery,Javascript,Jquery,您好,我使用localStorage存储变量的值。问题是localStorage从未从我在internet上找到的内容重置。我对在浏览器关闭时重置localStorage感兴趣 有办法吗 我尝试过使用$(window)。从jQuery卸载,但这会检测到与窗口相关的更改,并且会很快将localStorage变量重置为。阅读我在其中解释了如何检测浏览器关闭,$(window)。卸载并不总是起作用 <script> window.onbeforeunload = function (e)
<script>
window.onbeforeunload = function (e) {
if (localStorage) {
localStorage.clear();
}
};
</script>
window.onbeforeunload=函数(e){
if(本地存储){
localStorage.clear();
}
};
但是,是的,我建议使用Cookies或会话变量,它们将在浏览器关闭时而不是本地存储时被销毁。阅读我在其中解释了如何检测浏览器关闭,$(窗口)。卸载并不总是有效
<script>
window.onbeforeunload = function (e) {
if (localStorage) {
localStorage.clear();
}
};
</script>
window.onbeforeunload=函数(e){
if(本地存储){
localStorage.clear();
}
};
但是,是的,我建议使用Cookies或会话变量,这些变量将在浏览器关闭时销毁,而不是本地存储。您可能希望使用它们
会话存储
这是维护存储区域的全局对象(会话存储)
这在页面会话期间可用。页面会话
只要浏览器处于打开状态并在整个页面上继续存在,该状态就会持续
重新加载和恢复。在新选项卡或窗口中打开页面将导致
将启动一个新会话
你可能想用它来代替
会话存储
这是维护存储区域的全局对象(会话存储)
这在页面会话期间可用。页面会话
只要浏览器处于打开状态并在整个页面上继续存在,该状态就会持续
重新加载和恢复。在新选项卡或窗口中打开页面将导致
将启动一个新会话
为什么要使用
localStorage
来存储不希望持久化的值?我只希望在浏览器关闭之前存在该值,为什么不将数据存储在关闭浏览器时自动销毁的会话cookie中?为什么要使用localStorage
来存储不希望持久化的值持久化?我只保留在浏览器关闭前存在的值为什么不将数据存储在会话cookie中,而会话cookie在浏览器关闭时会自动销毁?为什么不if(localStorage)localStorage.clear()
在所有情况下?@mplungjan问题是我有兴趣在浏览器关闭时重置localStorage。我的意思是:window.onbeforeunload=function(){if(window.localStorage)localStorage.clear()}
完全清除。如果没有定义本地存储,Gopi的“for safari”部分也将失败。如果(e)块,则确实不需要if。只有在需要设置返回值时才需要这样做,如确认关闭问题。相反,您应该检查浏览器是否支持localStorage
,如@mplungjan@mplungjan所述。@mplungjan好的,明白了。我的错。if(e)
块仅在需要设置返回值时才有必要,现在就知道了我对答案进行了适当的编辑。为什么不if(localStorage)localStorage.clear()
在所有情况下?@mplungjan问题是我有兴趣在浏览器关闭时重置localStorage。我的意思是:window.onbeforeuload=function(){if(window.localStorage)localStorage.clear()}
完全清楚。如果没有定义本地存储,Gopi的“for safari”部分也将失败。如果(e)
块,则确实不需要if。只有在需要设置返回值时才需要这样做,如确认关闭问题。相反,您应该检查浏览器是否支持localStorage
,如@mplungjan@mplungjan所述。@mplungjan好的,明白了。我的错。if(e)
块仅在需要设置返回值时才有必要,现在就知道了我对答案进行了编辑,以使其适当。