gpt4 book ai didi

javascript - js如何让弹窗只出现一次?

转载 作者:行者123 更新时间:2023-12-03 03:31:02 25 4
gpt4 key购买 nike

我正在尝试创建一个 30 秒后过期的 cookie。如果用户在这 30 秒之间刷新页面,则弹出窗口不应在 cookie 过期时弹出。如果用户在 30 秒后刷新页面,应该会看到它。我的问题是它不断出现,不会停止。我怎样才能阻止呢?

<!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 createCookie(name) {
debugger;
var date = new Date();
date.setTime(date.getTime()+(30*1000));
// alert(date);
var expires = "; expires="+date.toString();
document.cookie = name+"="+expires+"; path=/";
//alert(document.cookie);
}
function showbanner()
{
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">&times;</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>');

}
</script>

</head>

<body>
<script>
var ban = document.cookie;

createCookie('banner');
if(ban==""){
showbanner();
}

</script>




</body>
</html>

最佳答案

我会使用 localStorage 而不是 cookie。不用担心过期,只需在加载时保存当前日期并检查是否比上次加载超过 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">&times;</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>

关于javascript - js如何让弹窗只出现一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46101636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com