我的cookie没有永久设置

时间:2014-05-14 17:00:05

标签: javascript jquery html cookies

我使用https://github.com/carhartl/jquery-cookie的jQuery.min.js 和我的cookie代码:

$(function() {

    //hide all divs just for the purpose of this example, 
    //you should have the divs hidden with your css

    //check if the cookie is already setted
    if ($.cookie("_usci") === undefined){
            $.cookie("_usci",1);
    } else { //else..well   

            var numValue = parseInt($.cookie("_usci"));
            numValue = numValue + 1;
            else{ //no issues, assign the incremented value
                $.cookie("_usci",numValue.toString());
            }

    }


    //just to add a class number to it
    //$('.current-number').addClass($.cookie("currentDiv"));
    //to add 'n + 1/2/3/4/5/6/7/8/9/10 etc.'
    $('.current-number').addClass("n"+$.cookie("_usci"));
    $('.current-number-large').addClass("n"+$.cookie("_usci"));
});

由于某种原因,当我退出浏览器并再次打开它时,cookie不再设置并将重置,我该如何解决?

2 个答案:

答案 0 :(得分:2)

根据documentation

$.cookie('the_cookie', 'the_value', { expires: 7 });

expire定义cookie的生命周期。值可以是一个数字,它将被解释为创建时的天数或Date对象。如果省略,则cookie将成为会话cookie。

所以对你的情况来说:

$.cookie('_usci', numValue.toString(), { expires: 5 * 365 });

这将使您的Cookie在五年后到期。

答案 1 :(得分:0)

您必须在创建Cookie时添加过期日期:

$.cookie('the_cookie', 'the_value', { expires: 7 }); // this cookie expires in 7 days

来自文档:

Define lifetime of the cookie. Value can be a Number which will be interpreted as days from time of creation or a Date object. If omitted, the cookie becomes a session cookie.

作为会话cookie,它将在浏览器关闭时自动删除。

在您的代码中:

//check if the cookie is already setted
if ($.cookie("_usci") === undefined){
    $.cookie("_usci", 1, { expires: 7 });
} else {
    var numValue = parseInt($.cookie("_usci"));
    $.cookie("_usci", numValue++, { expires: 7 });
}