JavaScript操作cookie

作者:陆金龙    发表时间:2017-10-06 22:48   


赋值:document.cookie="uname=kinglong";//不会丢失其他cookie的值,浏览器维护多个

存储多个名/值对:document.cookie="uid=001; uname=kinglong";

取值:var strCookie=document.cookie; //对包括了该域名下的所有cookie ,以分号隔开的多个名/值对所组成的字符串

 

在cookie的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。

因此包含特殊字符时使用escape()编码特殊字符的赋值, 使用unescape()解码

 

默认情况cookie仅仅是存储在内存中,浏览器关闭后这些cookie将会丢失,可以用下面的选项来给cookie设置终止日期:document.cookie="uid=001; expires=GMT_String";

 

删除一个cookie,可以将其过期时间设定为一个过去的时间

 

指定可访问cookie的路径 document.cookie="userId=320; path=/shop"; 

指定可访问cookie的主机名 document.cookie="name=value; domain=cookieDomain";

function addCookie (name,value,expireHours){
   var cookieString=name "=" escape(value);
   //判断是否设置过期时间
   if(expireHoursi>0){
       var date=new Date();
       date.setTime(date.getTime expireHours*3600*1000);
       cookieString=cookieString "; expire=" date.toGMTString();
    }
    document.cookie=cookieString;
}

function getCookieVal (name) {
    var strCookie=document.cookie;
    var arrCookie=strCookie.split("; ");
    for(var i=0;i<arrCookie.length;i  ){
       var arr=arrCookie[i].split("=");
       //找到名称为name的cookie,并返回它的值
       if(name==arr[0]){
            return unescape(arr[1]);
       }
    }
    return "";
}

function deleteCookie(name){
   var date=new Date();
   date.setTime(date.getTime()-10000);
   document.cookie=name "=v; expire=" date.toGMTString();
}