Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript浏览器关闭事件_Javascript_Jquery - Fatal编程技术网

Javascript浏览器关闭事件

Javascript浏览器关闭事件,javascript,jquery,Javascript,Jquery,您好,我使用localStorage存储变量的值。问题是localStorage从未从我在internet上找到的内容重置。我对在浏览器关闭时重置localStorage感兴趣 有办法吗 我尝试过使用$(window)。从jQuery卸载,但这会检测到与窗口相关的更改,并且会很快将localStorage变量重置为。阅读我在其中解释了如何检测浏览器关闭,$(window)。卸载并不总是起作用 <script> window.onbeforeunload = function (e)

您好,我使用localStorage存储变量的值。问题是localStorage从未从我在internet上找到的内容重置。我对在浏览器关闭时重置localStorage感兴趣

有办法吗

我尝试过使用$(window)。从jQuery卸载,但这会检测到与窗口相关的更改,并且会很快将localStorage变量重置为。

阅读我在其中解释了如何检测浏览器关闭,$(window)。卸载并不总是起作用

<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)
块仅在需要设置返回值时才有必要,现在就知道了我对答案进行了编辑,以使其适当。