Javascript 防止页面重新加载时设置超时功能

Javascript 防止页面重新加载时设置超时功能,javascript,local-storage,settimeout,Javascript,Local Storage,Settimeout,我运行的是Bootstrap3.3.6。我有一个非常简单的setTimeout函数,可以在10秒后触发一个弹出窗口 setTimeout(function(){ $('#myModal').modal('show'); }, 10000); 我在我的主页末尾添加了这个脚本。这段代码工作得很好,弹出窗口(#myModal)打开得很好 问题是,如果我访问我网站上的另一个页面,然后点击后退按钮,或者单击导航栏上的主页,弹出窗口会再次启动 我在这里找到了一个关于使用lo

我运行的是Bootstrap3.3.6。我有一个非常简单的setTimeout函数,可以在10秒后触发一个弹出窗口

setTimeout(function(){
        $('#myModal').modal('show');
        }, 10000);
我在我的主页末尾添加了这个脚本。这段代码工作得很好,弹出窗口(#myModal)打开得很好

问题是,如果我访问我网站上的另一个页面,然后点击后退按钮,或者单击导航栏上的主页,弹出窗口会再次启动


我在这里找到了一个关于使用localStorage并将其作为if/else运行的答案。基本上,这样你只会在第一次访问该页面时看到弹出窗口。但我对javascript非常陌生,我很难正确使用它。有人能帮我吗?

我会用这样一种简单的方法:

//从本地存储加载标志
var alreadyDisplayed=localStorage.getItem('alreadyDisplayed');
//如果未找到或找到但为“假”-显示模式(在这种情况下发出警报)
如果(!alreadyDisplayed | | alreadyDisplayed=='false'){
setTimeout(函数(){
警报(“显示”);
//store to localStorage显示模式的事实
setItem('alreadyDisplayed','true');
},5*1000);//以毫秒为单位,因此5*1000=5秒

}
好吧,我想一种方法是创建一个cookie,然后检查它。也许您可以在主页的脚本中创建这样的cookie:

window.onload=function(){
如果(!document.cookie){
setTimeout(函数(){
$('myModal').modal('show');
}, 10000);
document.cookie=“cookie=yes;path=/”;
}

}
您需要将其存储在cookie或localStorage上,并在每次页面加载时首先从中读取-每次用户清除cookie或删除local Storage时,这将被“重置”—请确保这一切正常运行!!!非常感谢!我只需要把(#myModal)的“警报”切换成这样$模态('show');。。。。。弹出窗口仅显示您第一次访问。必须重置浏览器cookie才能再次看到它。