Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.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_Json - Fatal编程技术网

Javascript 实时检查会话存储

Javascript 实时检查会话存储,javascript,jquery,json,Javascript,Jquery,Json,我正在尝试构建当鼠标离开浏览器时弹出信息的代码。我让它在弹出警报和存储会话信息的情况下工作,但只有在我刷新浏览器之后 var key = JSON.parse(sessionStorage.getItem('data')); if (key.name != 'key') { $('body').mouseleave(function() { alert('Success'); sessionStorage.setItem('data', JSON.stri

我正在尝试构建当鼠标离开浏览器时弹出信息的代码。我让它在弹出警报和存储会话信息的情况下工作,但只有在我刷新浏览器之后

var key = JSON.parse(sessionStorage.getItem('data'));
if (key.name != 'key') {
    $('body').mouseleave(function() {
        alert('Success');
        sessionStorage.setItem('data', JSON.stringify( {name: 'key'} ));
    }); 
}

我想把它建得尽可能简单。我的看法:如果未设置会话,则在mouseleave事件上显示警报。如果设置了会话,如何使该代码实时签入?

当用户第一次离开页面时,您仅添加了
会话存储。也就是说,除非触发
mouseleave
事件,否则会话键永远不会被设置

让事件每次触发并根据
会话存储
数据更改功能

我粘贴了没有if检查的代码,它可以工作:

$('body').mouseleave(function() {
     var data = JSON.parse(sessionStorage.getItem('data'));
     if(data) {
         console.log('Has Key... ');
     } else {
         sessionStorage.setItem('data', JSON.stringify( {name: 'key'} ));
         console.log('Add Key... ');
     }
});

注意:确保您的会话中没有先前测试的密钥<代码>删除项目
每次刷新页面之前

请这样设置会话

 var key = JSON.parse(sessionStorage.getItem('data'));
    if (key) {
            $('body').mouseleave(function() {
            alert('Success');
            sessionStorage.setItem('data', JSON.stringify( {name: 'key'} ));
        }); 
    }
它是工作代码。最好检查mouseleave回调函数中的条件,如

 var key = JSON.parse(sessionStorage.getItem('data'));
  $('body').mouseleave(function() {
        if (key) {
            alert('Success');
           sessionStorage.setItem('data', JSON.stringify( {name: 'key'} ));
            }
      }); 

在一句话中使用“实时”和“jQuery”,粗体移动,让我们看看它是如何发挥作用的。你可以猜到,我有一个大问题,甚至试图解释我想要什么。所以“实时”似乎是个好词。看来我错了。对不起,这是一个玩笑,我希望你没有把它当回事。我没有工作。它仍然一次又一次地出现。我想在这个页面中创建一些类似的东西:,当你离开页面时,你会得到适合我的代码。如果这不起作用,你可能会有另一个问题,然后你给我们看什么。