Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript在一天内仅显示一次弹出窗口_Javascript_Html_Popup - Fatal编程技术网

如何使用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代码。我需要它去缓存。所以访问者在第一次访问时不会得到错误页面。