浏览器中,使用JavaScript操作cookie的两个工具函数。
设置cookie值, 必须的參数是name和value,可选參数是过期天数和域名。
// 设置cookie值(key,value,过期天数,域名)
function setCookie(cookieName, cookieValue, expiredays, domain){
// 0 比較特殊
if(0 === cookieValue){
cookieValue = 0;
} else if(!cookieValue){
cookieValue = "";
}
// 编码
cookieValue = encodeURIComponent(cookieValue);
//获取cookie字符串
var cookieStr= cookieName + "=" + cookieValue;
// 过期时间
if(expiredays && !isNaN(expiredays)){
var exdate=new Date();
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)
function getCookie(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=(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");// ""
感谢: 太空飞猪
日期: 2016年1月7日
作者: 铁锚