现在的位置: 首页 > 综合 > 正文

一个简单js读写cookies的函数

2013年04月07日 ⁄ 综合 ⁄ 共 1435字 ⁄ 字号 评论关闭
工作中写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");

抱歉!评论已关闭.