写入Cookie的特殊字符请先编码特殊字符入‘/’ 可以试着用escape或者其他的

解决方案 »

  1.   

    测试了一下,传入的时间有问题。换一个Cookie的操作方式吧。你写的不怎么样//function to decode Cookie then get Cookie value
    function GetCookieVal(offset)
    {
    var endstr = document.cookie.indexOf (":", offset);
    if (endstr == -1)
    endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
    }
    //set Cookie value
    function SetCookie(name, value)
    {
    var expdate = new Date();
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ));
    document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expdate.toGMTString()))
    +((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
    +((secure == true) ? "; secure" : "");
    }
    //function:delete Cookie
    function DelCookie(name)
    {
    var exp = new Date();
    exp.setTime (exp.getTime() - 1);
    var cval = GetMyCookie (name);
    document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();
    }
    //  Function to return the value of the cookie specified by "name".
    //    name - String object containing the cookie name.
    //    returns - String object containing the cookie value, or null if
    //      the cookie does not exist.
    function GetNoEscapeCookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) 
    {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;

    else
    begin += 2;

    var end = document.cookie.indexOf(";", begin);
    if (end == -1) end = dc.length;
    return dc.substring(begin + prefix.length, end);
    }