Javascript:用户登陆时仅提醒一次

时间:2012-12-20 15:46:50

标签: javascript jquery

有没有办法只显示一次警报框,即当用户点击网站时,然后当他们浏览时不再出现?

5 个答案:

答案 0 :(得分:6)

例如,您可以设置localStorage属性

if(!localStorage["alertdisplayed"]) {
    alert("Your text")
    localStorage["alertdisplayed"] = true
}

请注意,较早的浏览器不支持localStorage,如blazemonger - Compatibility List

所述

另一种方法是设置Cookie并检查其存在

如果您不知道如何使用javascript设置/获取Cookie,我建议您在MDN上阅读此文章

答案 1 :(得分:3)

您可以检查是否存在cookie,如果没有找到,则显示警报并设置一个很长一段时间后过期的cookie。像这样:

if (!document.cookie.match(/(?:^|; *)alert_shown=1/)) {
    alert("Hello world");
    document.cookie = "alert_shown=1;max-age=" + 60 * 60 * 24 * 365;
}
PS:我不确定正则表达式是否是防弹的。饼干可能会被删除。

答案 2 :(得分:0)

您可以在用户第一次登陆网站时删除一个非常大的到期日期的Cookie。然后,您可以检查该cookie是否存在,只显示警告框(如果不存在)。

答案 3 :(得分:0)

是。您可以使用cookie,本地存储,数据库条目或会话变量(或组合)来确定他们是否已经看到/放弃了通知。

如果您正在处理JavaScript,那么Cookie或本地存储可能是您唯一的选择。 (请记住,虽然本地存储仍然是"新的",但并非所有浏览器都实现或支持它。)

旁注:您也可以使用AJAX并将标志存储在服务器上(但这取决于您的设置以及您可用的资源)。

答案 4 :(得分:0)

您应该考虑使用通知区域,而不是警告框。然后使用cookie来防止通知更频繁地显示出来。