浏览器中,使用JavaScript操作cookie的两个工具函数。
设置cookie值, 必须的参数是name和value,可选参数是过期天数和域名。
// 设置cookie值(key,value,过期天数,域名)functionsetCookie(cookieName, cookieValue, expiredays, domain){// 0 比较特殊if(0 === cookieValue){
cookieValue = 0;
} elseif(!cookieValue){
cookieValue = "";
}
// 编码
cookieValue = encodeURIComponent(cookieValue);
//获取cookie字符串var cookieStr= cookieName + "=" + cookieValue;
// 过期时间if(expiredays && !isNaN(expiredays)){
var exdate=newDate();
exdate.setDate(exdate.getDate()+expiredays);
cookieStr += "; expires="+exdate.toGMTString();
}
// 域名//domain = domain || document.domain;if(domain){
cookieStr += "; path=" + "/";
cookieStr += "; domain="+domain;
}
// 保存本地 cookie
document.cookie = cookieStr;
// 返回设置后的值return cookieValue;
};
获取cookie值,只需要一个name,过期时间和域名浏览器会自己管理,有效的cookie也只能获取到名称和值。
// 获取cookie值(key)functiongetCookie(cookieName){//获取cookie字符串var strCookie=document.cookie;
//将多cookie切割为多个名/值对var arrCookie=strCookie.split("; ");
var cookieValue = null;
//遍历cookie数组,处理每个cookie对for(var i=0;i<arrCookie.length;i++){
var arr=arrCookie[i].split("=");
//找到cookie,并返回它的值if(cookieName==arr[0]){
cookieValue=unescape(arr[1]);
break;
}
}
//if(!cookieValue){
cookieValue = "";
}
cookieValue = decodeURIComponent(cookieValue);
//return cookieValue;
};
如果要删除一个cookie要怎么做?JS是没有这个API的,根据上面我们学到的知识,过期的cookie就相当于被删除了。
示例如下
setCookie("user", "renfufei");//"renfufei"
getCookie("user");//"renfufei"
setCookie("user", "renfufei", -1);//"renfufei"
getCookie("user");//""