我有这样的代码,当它在日历中的事件发生前30分钟显示警告,但我只想在用户到达页面时(在30分钟内)显示一次。现在它显示在每个页面刷新上,也显示在日历刷新(在30分钟内),因为它被设置为在一段时间之后刷新事件。如何只显示一次此警报?
var mili = event.start.getTime() - now.getTime();
if(mili < 1800000 && mili > 0){
$('.alert').dialog({
buttons: [{
text: "OK",
click: function() {
$( this ).dialog( "close" );
}
}]
});
}
发布于 2014-07-15 21:08:30
您可以使用localStorage (与旧浏览器不兼容):
<script type="text/javascript">
var alerted = localStorage.getItem('alerted') || '';
if (alerted != 'yes') {
alert("My alert.");
localStorage.setItem('alerted','yes');
}
</script>
或者您可以使用cookie,查看下面的答案以获得完整的示例代码:https://stackoverflow.com/a/21567127/3625883
发布于 2014-07-15 21:00:47
显示警报时设置cookie。然后,如果设置了cookie,您将知道不要再次显示警报。如果没有设置它,您就知道您还没有显示警告,应该现在就这样做。
发布于 2021-02-05 07:48:37
我知道现在已经很晚了,但是你绝对不用用本地的储藏室或饼干。我对这里的答案感到沮丧,所以我找到了自己的解决办法。
使用布尔值和嵌入的if语句。
var alerted = false;
if (x > y)
{
y = z;
if (alerted === false)
{
alert("show your message");
alerted = true;
}
}
然后,如果要再次显示警报消息,则可以在稍后重置警报变量。
https://stackoverflow.com/questions/24768067
复制相似问题