【发布时间】:2014-02-04 19:09:44
【问题描述】:
当用户点击弹出通知时,我使用 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的?
-
确定您创建 cookie 的方式并不完全正确。 Cookie 应设置为可保存多天。
-
刚刚更新了我的问题。
-
有jquery cookie插件。
标签: javascript