标签:
虽然现在HTML5胜行,localStorage已远远的胜过cookie,但是在天朝,ie6(基本已淘汰),ie7还需要考虑的前提下,cookie还是有用武之地的。
一直都有到cookie,也有了解过cookie的原理,工作中也一直不能忽视工期,基本使用cookie就用jquery.cookie.js解决啦,今天正好有时间就封装下原生的cookie函数。
代码如下(有详细注释):
/设置cookie
function setCookie(name,value,d){
var dateo=new Date(),//获取当前时间对象
day=dateo.getDate();//获取当前的日期-1值
dateo.setDate(day+d);//修改当前值为d天后
document.cookie=name+"="+encodeURI(value)+"; expires="+dateo.toGMTString();//设置cookie,expires为过期日期,设置的格式应该是"name=value; expires=过期日期"
}
//获取cookie
function getCookie(name){
var cookiestr=document.cookie,//获取cookie,格式应该为"name=value; name0=value0"
cookiearr0=cookiestr.split("; "),//以"; "来分构字符串成数组 ["name=value","name0=value0"]
cookiearr1=[];
for(var i=0;i<cookiearr0.length;i++){
cookiearr1=cookiearr0[i].split("=");//以"="分构字符串为数组,["name","value"]
if(cookiearr1[0]==name){//如果找到相同名称的cookie,返回它的值
return decodeURI(cookiearr1[1]);
}
}
return "";//如果没有找到相同名的cookir,返回空
}
//删除cookie
function removeCookie(name){
setCookie(name,"",-1);//把过期时间设为昨天,即删除了当前cookie
}
测试代码如下(本地用火狐,chrome本地不支持操作cookie,IE下查看不方便):
setCookie("test","你是谁?",1);
console.log(getCookie("test"));
setTimeout(function(){
removeCookie("test");
},10000)
setTimeout(function(){
console.log(getCookie("test"));
},11000)
标签:
原文地址:http://www.cnblogs.com/xwwin/p/4827777.html