有没有办法只显示一次警报框,即当用户点击网站时,然后当他们浏览时不再出现?
答案 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来防止通知更频繁地显示出来。