在学习JS如何操作cookie之前,先得了解下cookie是什么。
HTTP Cookie(也叫Web cookie或者浏览器Cookie)是服务器发送到用户浏览器并保存在浏览器上的一块数据,它会在浏览器下一次发起请求时被携带并发送到服务器上。比较典型的,可以它用来确定两次请求是否来自于同一个浏览器,从而能够确认和保持用户的登录状态。Cookie使得基于无状态的HTTP协议记录稳定的状态信息成为了可能。

接下来,就是JS如何操作浏览器cookie的问题了,包括设置、读取、删除。
设置Cookie
修改cookie的value值,也可以用setCookie这个函数。
function setCookie(name, value){
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "=" + escape (value) + ";expires=" + exp.toGMTString();
}
上面的代码默认cookie的过期时间是30天,如果需要自定义过期时间,就需要用到下面的两个函数。
function setCookie(name, value, time){
var strsec = getsec(time);
var exp = new Date();
exp.setTime(exp.getTime() + strsec*1);
document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
}
function getsec(str){
var str1 = str.substring(1,str.length)*1;
var str2 = str.substring(0,1);
if (str2 == "s"){ //"s"指的是秒,s20则是20秒
return str1*1000;
} else if (str2 == "h") { //"h"指的是小时,h12则是12个小时
return str1*60*60*1000;
} else if (str2 == "d") { //"d"指的是天数,d30则是30天
return str1*24*60*60*1000;
}
}
读取Cookie
function getCookie(name){
var arr,reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if(arr = document.cookie.match(reg))
return unescape(arr[2]);
else
return null;
}
删除cookie
function delCookie(name){
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if(cval != null)
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
相关链接:HTTP Cookies
网友评论