标签:
虽然现在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