有没有办法只显示一次警告框,即当用户点击网站时,当他们浏览它时不再出现?
问问题
6253 次
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 回答