js读写cookie
js读写cookie
//JS操作cookies方法!
//写cookies
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();
}
//读取cookies
function
getCookie(name)
{
var arr,reg=new RegExp("(^|
)"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)) return
unescape(arr[2]);
else return null;
}
//删除cookies
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();
}
//使用示例
setCookie("name","hayden");
alert(getCookie("name"));
//如果需要设定自定义过期时间
//那么把上面的setCookie 函数换成下面两个函数就ok;
//程序代码
function
setCookie2(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){
alert(str);
var str1=str.substring(1,str.length)*1;
var
str2=str.substring(0,1);
if (str2=="s"){
return str1*1000;
}else if
(str2=="h"){
return str1*60*60*1000;
}else if (str2=="d"){
return
str1*24*60*60*1000;
}
}
//这是有设定过期时间的使用示例:
//s20是代表20秒
//h是指小时,如12小时则是:h12
//d是天数,30天则:d30
//暂时只写了这三种
setCookie2("name2","hayden2","s20");
alert(getCookie("name2"));
以下是几个比较常见的好用的函数:
function GetCookieVal(offset)
//获得Cookie解码后的值
{
var endstr =
document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr =
document.cookie.length;
return unescape(document.cookie.substring(offset,
endstr));
}
function SetCookie(name, value)
//设定Cookie值
{
var
expdate = new Date();
var argv = SetCookie.arguments;
var argc =
SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] :
null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc >
4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] :
false;
if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000
));
document.cookie = name + "=" + escape (value) +((expires == null) ? "" :
("; expires="+ expdate.toGMTString()))
+((path == null) ? "" : ("; path=" +
path)) +((domain == null) ? "" : ("; domain=" + domain))
+((secure == true) ?
"; secure" : "");
}
function DelCookie(name)
//删除Cookie
{
var exp
= new Date();
exp.setTime (exp.getTime() - 1);
var cval = GetCookie
(name);
document.cookie = name + "=" + cval + "; expires="+
exp.toGMTString();
}
function
GetCookie(name)
//获得Cookie的原始值
{
var arg = name + "=";
var alen =
arg.length;
var clen = document.cookie.length;
var i = 0;
while (i <
clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) ==
arg)
return GetCookieVal (j);
i = document.cookie.indexOf(" ", i) +
1;
if (i == 0) break;
}
return null;
}
//测试
SetCookie("sunshine","1986");
alert(GetCookie("sunshine"));