一个简单js读写cookies的函数

工作中写js的量大了,经常要用到COOKIES读写的功能,然后去百度一下,这次要改革了,记在博客上,也方便日后使用了~
在网上也查到了一个关于js操作COOKIES的类,不过使用起来虽方便,只是代码太长,也增加了很多不常用到的功能,在一些小地方使用那个类也有些“杀牛用鸡刀”了
下面这段代码就方便多了,只有三段,而经常在使用中,可能那个delCookie函数都不需要用~

//写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 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){
    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
//暂时只写了这三种,不知道谁有更好的方法,呵呵
setCookie("name","hayden","s20");


尤来尤去[2007-12-28 09:08 AM]del回复
帅~~~~这代码收藏了~~~~
尤来尤去[2007-12-27 08:52 PM]del回复
确实够简单的~~~
      能不能给出个简单的范例啊 ,前几天在你的帮助下搞定了缓存,下一步准备学习一下Cookie~~~~

      还有啊,最好是能自由控制Cookie失效时间,把Cookie失效时间变量放到setCookie里去。因为既然写成了一个函数,肯定不止用到一个地方,或许其他地方也会用到,而且还希望此处的Cookie保存时间长一点,这时候就困难了~~~~

      如果我上面有什么说错的地方,还请指点一下~~~初学asp~~~~见笑了~~~
发表评论
Name (required)
PassWord(游客发言不需要密码.)

虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.