设置cookie:
document.cookie="id=1;name=qing";
document.addCookie("id=1");
在cookie名、值中不可出现 ; , = 及空格,一般通过escape函数进行编码,取出时使用unescape还原。
document.cookie="name="+escape("tmp_name");
获取cookie:
(1)拆分cookie
function getCookie(username){
var cookie_arr=document.cookie.split(";");
if(!cookie_arr.length){return "";}
var tmp_arr["",""];
for(var i=0; i<cookie_arr.length; i++){
tmp_arr=cookie_arr[i].split("=");
if(tmp_arr[0]==username){
break;
}
return tmp_arr[1];
}
(2)截取字符串
function getCookie(username){
var start=document.cookie.indexof(username+"=");
if(start=-1){return "";}
start=start+username.length+1;
var end =document.cookie.indexof(";",start);
if(end=-1){end=document.cookie.length;}
return document.cookie.substring(start,end);
}
(3)正则表达式解析
function getCookie(cookieName) {
var re = new RegExp("\\b"+cookieName+"=([^;]*)\\b");
var arr = re.exec(document.cookie);
return arr?arr[1]:"";
}
给cookie设置终止日期
var date= new Date();
var expiresDay = 1;
date.setTime(date.getTime()+expiresDay*24*60*60*1000);
document.cookie="id=1;expires="+date.toGTMString();
删除cookie只需将其时间设在过去。
完整示例
setCookie函数
function setCookie(name,value,expires,domain,secure) {
var str = name+"="+encodeURI(value);//不要忘了在对应getCookie函数里面加上decodeURI方法
if (expires) {
str += "; expires="+expires.toGMTString();
}
if (path) {
str += "; path="+path;
}
if (domain) {
str += "; domain="+domain;
}
if (secure) {
str += "; secure";
}
document.cookie = str;
}
删除Cookie
没有删除Cookie的直接的方法,但可以变通一下来删除Cookie!
function delCookie(cookieName) {
var expires = new Date();
expires.setTime(expires.getTime()-1);//将expires设为一个过去的日期,浏览器会自动删除它
document.cookie = cookieName+"=; expires="+expires.toGMTString();
}