我有这个代码,它在日历中的事件发生前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" );
}
}]
});
}
答案 0 :(得分:13)
您可以使用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
答案 1 :(得分:2)
显示提醒时设置Cookie。然后,如果设置了cookie,您将知道不再显示警报。如果没有设置,你知道你还没有显示警报,现在应该这样做。
答案 2 :(得分:0)
您必须使用cookies或localStorage或sessionStorage才能执行此操作!
请参阅localStorage上的以下链接: http://www.w3schools.com/html/html5_webstorage.asp
或
http://www.webdesignerdepot.com/2013/04/how-to-use-local-storage-for-javascript/
答案 3 :(得分:0)
我知道这已经晚了,但您绝对不必使用本地存储或 cookie。我对这里的答案感到沮丧,所以我找到了自己的解决方案。
使用布尔值和嵌入式 if 语句。
var alerted = false;
if (x > y)
{
y = z;
if (alerted === false)
{
alert("show your message");
alerted = true;
}
}
如果您想再次显示警报消息,您可以稍后重置警报变量。