我正在尝试构建当鼠标离开浏览器时弹出信息的代码。只要弹出警报并存储 session 信息,我就可以正常工作,但只有在刷新浏览器之后才可以。
var key = JSON.parse(sessionStorage.getItem('data'));
if (key.name != 'key') {
$('body').mouseleave(function() {
alert('Success');
sessionStorage.setItem('data', JSON.stringify( {name: 'key'} ));
});
}
我想尽可能简单地构建它。我的看法:如果未设置 session ,则在 mouseleave 事件上显示警报。如何使该代码实时检查 session 是否已设置?
最佳答案
您仅在用户首次离开页面时添加sessionStorage
。这意味着,在触发 mouseleave
事件之前, session key 永远不会被设置。
让事件每次触发并根据 sessionStorage
数据更改功能
我粘贴了您的代码,没有进行 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... ');
}
});
注意:确保您的 session 中没有之前测试中的 key 。每次刷新页面之前removeItem
。
关于javascript - 实时检查sessionStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30354997/