2

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

4

5 回答 5

6

例如,您可以设置一个localStorage属性,例如

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

请注意,如blazemonger - Compatibility List所述,旧版浏览器不支持 localStorage

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

如果您不知道如何使用 javascript 设置/获取 cookie,我建议您阅读MDN上的这篇文章

于 2012-12-20T15:48:47.423 回答
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:我不确定正则表达式是否是防弹的。cookie 可能会……被删除。

于 2012-12-20T15:57:51.073 回答
0

您可以在用户第一次登陆网站时删除一个过期日期非常长的 cookie。然后,您可以检查该 cookie 是否存在,如果它不存在,则仅显示警告框。

于 2012-12-20T15:48:43.427 回答
0

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

考虑到您正在处理 JavaScript,cookie 或本地存储可能是您唯一的选择。(请记住,虽然本地存储仍然是“新的”,但并非所有浏览器都实现或支持它)。

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

于 2012-12-20T15:48:51.523 回答
0

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

于 2012-12-20T15:56:56.530 回答