如何使用javascript在一天内仅显示一次弹出窗口
我有这样的代码。我想在一天内只显示一次弹出窗口如何使用javascript在一天内仅显示一次弹出窗口,javascript,html,popup,Javascript,Html,Popup,我有这样的代码。我想在一天内只显示一次弹出窗口 <script type="text/javascript"> var popup = function() { window.open ("http://example.com", "Window","status=1,toolbar=1"); } </script> <body onclick="popup()"> </body> var popup=fu
<script type="text/javascript">
var popup = function() {
window.open ("http://example.com", "Window","status=1,toolbar=1");
}
</script>
<body onclick="popup()"> </body>
var popup=function(){
window.open(“http://example.com“,”窗口“,”状态=1,工具栏=1“;
}
当我单击页面上的任意位置时,该代码将打开弹出窗口,但每次单击时它都会弹出一个窗口,因此我希望该弹出窗口在一天内仅显示一次。您可以使用localStorage或Cookie来存储上次显示弹出窗口的时间。如果当前时间与上次时间之间的差异大于24小时,您将呈现弹出窗口。您需要使用浏览器的LocalStorage,以了解哪些用户看到弹出窗口,并且每天不再显示一次
<script type="text/javascript">
var popup = function() {
window.open ("http://example.com", "Window","status=1,toolbar=1");
}
</script>
<body onclick="popup()"> </body>
您可以使用:
localStorage.setItem('PopupName', 'true')
localStorage.getItem('PopupName') // that return true
使用此函数,您可以调用一个函数,检查该变量是否已存在于LocalStorage中,如果该变量不存在,执行显示弹出窗口的代码,并在LocalStorage中设置一个变量,如示例所示。您需要将上次显示的
时间戳保存在LocalStorage
中,并将其与当前时间戳进行比较(在剥离小时/分钟/秒/毫秒后)
演示(请仅本地查看)
var popup=function(){
var lastShownTs=+localStorage.getItem(“lastShownTs”);
var currentDate=新日期();
currentDate.setHours(0,0,0,0);
var lastShowed=null;
如果(!isNaN(lastShownTs)){
lastShownTs=新日期(lastShownTs);
LastShowed.setHours(0,0,0,0);
}
如果(LastShowed==null | | LastShowed.getTime()!=currentDate.getTime()){
窗口打开(“http://example.com“,”窗口“,”状态=1,工具栏=1“;
setItem(“lastShowed”,currentDate.getTime());
}
}
currentDate.setHours(0,0,0,0)的含义是什么代码>和最后显示。设置小时数(0,0,0,0)代码>我试着从try Editor w3School运行,它可以正常工作。因此,如果弹出窗口在周六下午24:00显示,下一个弹出窗口将在周日下午24:00再次显示?是的,它应该确保只有日期部分可以相互比较,而时间戳的其余部分不考虑。感谢u代码。我需要它去缓存。所以访问者在第一次访问时不会得到错误页面。