首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >只显示一次警报

只显示一次警报
EN

Stack Overflow用户
提问于 2014-07-15 20:58:58
回答 4查看 32.9K关注 0票数 7

我有这样的代码,当它在日历中的事件发生前30分钟显示警告,但我只想在用户到达页面时(在30分钟内)显示一次。现在它显示在每个页面刷新上,也显示在日历刷新(在30分钟内),因为它被设置为在一段时间之后刷新事件。如何只显示一次此警报?

代码语言:javascript
运行
复制
var mili = event.start.getTime() - now.getTime();
if(mili < 1800000 && mili > 0){    
$('.alert').dialog({ 
        buttons: [{ 
        text: "OK", 
          click: function() { 
            $( this ).dialog( "close" ); 
          }
        }]
    });
}
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-07-15 21:08:30

您可以使用localStorage (与旧浏览器不兼容):

代码语言:javascript
运行
复制
<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

票数 20
EN

Stack Overflow用户

发布于 2014-07-15 21:00:47

显示警报时设置cookie。然后,如果设置了cookie,您将知道不要再次显示警报。如果没有设置它,您就知道您还没有显示警告,应该现在就这样做。

您可以在这里阅读有关在JavaScript中设置cookie的内容。

票数 2
EN

Stack Overflow用户

发布于 2021-02-05 07:48:37

我知道现在已经很晚了,但是你绝对不用用本地的储藏室或饼干。我对这里的答案感到沮丧,所以我找到了自己的解决办法。

使用布尔值和嵌入的if语句。

代码语言:javascript
运行
复制
var alerted = false;

if (x > y)
{
     y = z;
     if (alerted === false)
     {
          alert("show your message");
          alerted = true;
     }
}

然后,如果要再次显示警报消息,则可以在稍后重置警报变量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24768067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档