当用户点击弹出通知时,我使用 JavaScript 设置了一个 cookie,但在完全关闭浏览器后,cookie 过期并且在导航到该页面时再次显示该通知。
我希望用户可以选择说“不再显示”。
1) 有没有更好的方法来做到这一点,比如将数据保存到数据库?
2) 我可以设置 cookie,使其在窗口关闭时不会过期吗?
这是设置 cookie 的代码。如果 cookie 未设置为“已访问”,它会调用另一个函数 showLightBox()
。
$j(document).ready(function() {
$j(function() {
checkCookie();
});
function checkCookie() {
var hasVisit = getCookie("hasVisited");
if(hasVisit != "visited") {
showLightBox();
}
}
function getCookie(c_name) {
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
c_start = c_value.indexOf(c_name + "=");
if (c_start == -1)
c_value = null;
else
{
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1)
c_end = c_value.length;
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}
function setCookie(cookieName, value) {
document.cookie = cookieName + "=" + value;
}
最佳答案
您可以像这样设置cookie过期的日期。
document.cookie="username=suman; expires=Thu, 18 Dec 2020 11:00:00 GMT";
现在,该 cookie 将于 2020 年 12 月 18 日删除。默认情况下,该 cookie 将在您关闭浏览器时删除。
更新:- 在您的情况下,cookie 将设置其过期日期。
function setCookie(cookieName,value){
document.cookie = cookieName+"="+value+"; expires=Thu, 18 Dec 2020 11:00:00 GMT";
}
您可以在日期字段中输入您想要的任何日期。
关于javascript - 如何在用户单击链接后停止弹出窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21561236/