Javascript 如何使用js使弹出窗口只显示一次?
我正在尝试创建一个30秒后过期的cookie。如果用户在这30秒之间刷新页面,则仅当cookie过期时,弹出窗口不应弹出。如果用户在30秒后刷新页面,应该会看到它。我的问题是,它不断地出现,它不会停止。我怎样才能阻止它Javascript 如何使用js使弹出窗口只显示一次?,javascript,jquery,html,bootstrap-modal,Javascript,Jquery,Html,Bootstrap Modal,我正在尝试创建一个30秒后过期的cookie。如果用户在这30秒之间刷新页面,则仅当cookie过期时,弹出窗口不应弹出。如果用户在30秒后刷新页面,应该会看到它。我的问题是,它不断地出现,它不会停止。我怎样才能阻止它 $(文档).ready(函数(){ $(“#myModal”).modal('show'); }); 函数createCookie(名称){ 调试器; 变量日期=新日期(); date.setTime(date.getTime()+(30*1000)); //警报(日期);
$(文档).ready(函数(){
$(“#myModal”).modal('show');
});
函数createCookie(名称){
调试器;
变量日期=新日期();
date.setTime(date.getTime()+(30*1000));
//警报(日期);
var expires=“;expires=“+date.toString();
document.cookie=name+“=”+expires+“path=/”;
//警报(document.cookie);
}
函数showbanner()
{
记录。写下(“×;注册秋季课程,今天预订座位电子邮件:或电话:”);
}
var ban=document.cookie;
createCookie(“横幅”);
如果(ban==“”){
showbanner();
}
我会在cookies上使用本地存储。不必担心过期,只需保存当前加载日期,并检查是否比上次加载时间多30秒:
var lastVisited = window.localStorage.getItem('last visited');
console.log(
'It has been',
Date.now() - 5000 > Date.parse(lastVisited) ? 'more' : 'less',
'than 5 seconds since your last visit.'
)
window.localStorage.setItem('last visited', new Date());
全文:
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Bootstrap Core CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<!-- Latest jQuery Library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!-- Bootstrap Core JS -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<!-- Cookie JS for Modal -->
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.0/jquery.cookie.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#myModal").modal('show');
});
</script>
<script>
function showBanner(name) {
var lastVisited = window.localStorage.getItem('last visited');
if (lastVisited == null || Date.now() - 5000 > Date.parse(lastVisited)) {
document.write('<div class="container-fluid"><div id="myModal" class="modal fade"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3>REGISTER FOR FALL SESSION</h3></div><div class="modal-body"><div class="row"><div class="col-xs-12 col-sm-6"> <img src="gym.png" alt="gym_promo" style="width:304px;"></div><div class="col-xs-12 col-sm-6"><h3> Reserve Your Spot Today </h3><p> EMAIL : <a href="mailto:PLAYATGYM@GMAIL.COM" target="_top">PLAYATGYM@GMAIL.COM </a> </p><p>OR CALL :<a href="514-795-4266"> 514-795-4266</a> </p> </div></div></div> </div> </div></div></div>');
}
window.localStorage.setItem('last visited', new Date());
}
showBanner();
</script>
</head>
<body>
</body>
</html>
$(文档).ready(函数(){
$(“#myModal”).modal('show');
});
函数showBanner(名称){
var lastVisited=window.localStorage.getItem(“上次访问”);
if(lastVisited==null | | Date.now()-5000>Date.parse(lastVisited)){
记录。写下(“×;注册秋季课程,今天预订座位电子邮件:或电话:”);
}
window.localStorage.setItem('上次访问',新日期());
}
showBanner();
可能与commands中的分号有关不要问新帐户的问题。@Brian谢谢你花时间回答我。不,兄弟,我查过了,但你认为逻辑是正确的吗?这不是新帐户,我只是转寄了我的questin@cdi什么意思?你在这个问题的另一个回复中回答了这个问题。我知道这在法庭上是站不住脚的,但在句号之后没有空格的文字不断出现,而且还在继续流行up@cdi请尝试我发布的HTML。我累了,它仍然不工作,兄弟,5秒后弹出窗口不工作appear@cdi这是一个演示。单击runwithjs
按钮。等待5秒钟,然后再次按下,模式将再次弹出。等待少于5秒,您将不会看到模式弹出窗口。