用js读、写、删除Cookie代码续篇
上次的一篇文章:用js读、写、删除Cookie代码分享及详细注释说明,在实践中发现了一些问题:
1.cookie在本地文件上只能在火狐上调试,IE和chrome无效
2.cookie没有设置为永不过期,只考虑了设置一个时间段就过期,显然不太合理。
这次给出的是比较合理的cookie操作代码:
varCookie={
get:function(k){
return((newRegExp(["(?:;)?",k,"=([^;]*);?"].join(""))).test(document.cookie)&&RegExp["$1"])||"";
},
set:function(k,v,e,d){
vardate=newDate();
varexpiresDays=e;
date.setTime(date.getTime()+expiresDays*24*3600*1000);
//如果有设置时间,则在规定时间内使用cookie,否则就是永不过期
document.cookie=k+"="+v+";expires="+(e!=''?date.toGMTString():"GMT_String")+";path=/;domain="+(d||'');
},
del:function(k){
vardate=newDate();
//将date设置为过去的时间
date.setTime(date.getTime()-10000);
document.cookie=k+"=;expires="+date.toGMTString();
}
};
例子演示的是:点击文字展开内容,再次点击隐藏。当内容为隐藏时,下次打开还是隐藏的,当内容为显示时,下次打开还是显示。
<divclass="tab">
<h3class="tab-header">收缩</h3>
<divclass="tab-con"id="tabCon">
<p>展开之后可见这里的内容</p>
</div>
</div>
varbtn=document.getElementsByTagName('h3')[0];
btn.addEventListener('click',function(){
varisClose=this.getAttribute('data-isClose');
if(isClose=='close'){
show();
Cookie.del('flag');
}else{
hide();
Cookie.set('flag','hide');
}
});
vartabCon=document.getElementById('tabCon');
functionshow(){
tabCon.style.display='block';
btn.setAttribute('data-isClose','open');
btn.innerHTML='收缩';
}
functionhide(){
tabCon.style.display='none';
btn.setAttribute('data-isClose','close');
btn.innerHTML='展开';
}
varflag=Cookie.get('flag');
if(flag=='hide'){
hide();
}
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短