用js读、写、删除Cookie代码续篇
作者:bea
上次的一篇文章:用js读、写、删除Cookie代码分享及详细注释说明,在实践中发现了一些问题: 1.cookie在本地文件上只能在火狐上调试,IE和chrome无效 2.cookie没有设置为永不过期,只考虑了设置一个时间段就过期,显然不太合理。 这次给出的是比较合理的cookie操作代码: 代码如下: var Cookie = { get: function (k) { return ((new RegExp(["(?:; )?", k, "=([^;]*);
上次的一篇文章:用js读、写、删除Cookie代码分享及详细注释说明,在实践中发现了一些问题:
1.cookie在本地文件上只能在火狐上调试,IE和chrome无效
2.cookie没有设置为永不过期,只考虑了设置一个时间段就过期,显然不太合理。
这次给出的是比较合理的cookie操作代码:
代码如下:
var Cookie = {
get: function (k) {
return ((new RegExp(["(?:; )?", k, "=([^;]*);?"].join(""))).test(document.cookie) && RegExp["$1"]) || "";
},
set: function (k, v, e, d) {
var date=new Date();
var expiresDays=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) {
var date=new Date();
//将date设置为过去的时间
date.setTime(date.getTime()-10000);
document.cookie=k+"=; expires="+date.toGMTString();
}
};
例子演示的是:点击文字展开内容,再次点击隐藏。当内容为隐藏时,下次打开还是隐藏的,当内容为显示时,下次打开还是显示。
代码如下:
<div class="tab">
<h3 class="tab-header">收缩</h3>
<div class="tab-con" id="tabCon">
<p>展开之后可见这里的内容</p>
</div>
</div>
var btn = document.getElementsByTagName('h3')[0];
btn.addEventListener('click',function(){
var isClose = this.getAttribute('data-isClose');
if(isClose == 'close'){
show();
Cookie.del('flag');
}else{
hide();
Cookie.set('flag','hide');
}
});
var tabCon = document.getElementById('tabCon');
function show(){
tabCon.style.display = 'block';
btn.setAttribute('data-isClose','open');
btn.innerHTML = '收缩';
}
function hide(){
tabCon.style.display = 'none';
btn.setAttribute('data-isClose','close');
btn.innerHTML = '展开';
}
var flag = Cookie.get('flag');
if(flag == 'hide'){
hide();
}
有用 | 无用
1.cookie在本地文件上只能在火狐上调试,IE和chrome无效
2.cookie没有设置为永不过期,只考虑了设置一个时间段就过期,显然不太合理。
这次给出的是比较合理的cookie操作代码:
代码如下:
var Cookie = {
get: function (k) {
return ((new RegExp(["(?:; )?", k, "=([^;]*);?"].join(""))).test(document.cookie) && RegExp["$1"]) || "";
},
set: function (k, v, e, d) {
var date=new Date();
var expiresDays=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) {
var date=new Date();
//将date设置为过去的时间
date.setTime(date.getTime()-10000);
document.cookie=k+"=; expires="+date.toGMTString();
}
};
例子演示的是:点击文字展开内容,再次点击隐藏。当内容为隐藏时,下次打开还是隐藏的,当内容为显示时,下次打开还是显示。
代码如下:
<div class="tab">
<h3 class="tab-header">收缩</h3>
<div class="tab-con" id="tabCon">
<p>展开之后可见这里的内容</p>
</div>
</div>
var btn = document.getElementsByTagName('h3')[0];
btn.addEventListener('click',function(){
var isClose = this.getAttribute('data-isClose');
if(isClose == 'close'){
show();
Cookie.del('flag');
}else{
hide();
Cookie.set('flag','hide');
}
});
var tabCon = document.getElementById('tabCon');
function show(){
tabCon.style.display = 'block';
btn.setAttribute('data-isClose','open');
btn.innerHTML = '收缩';
}
function hide(){
tabCon.style.display = 'none';
btn.setAttribute('data-isClose','close');
btn.innerHTML = '展开';
}
var flag = Cookie.get('flag');
if(flag == 'hide'){
hide();
}
有用 | 无用
猜你喜欢
您可能感兴趣的文章:
- 深入分析js的冒泡事件
- Javascript解析URL方法详解
- jQuery不兼容input的change事件问题解决过程
- Node.js中安全调用系统命令的方法(避免注入安全漏洞)
- jQuery前端框架easyui使用Dialog时bug处理
- Javascript实现获取窗口的大小和位置代码分享
- Javascript 中创建自定义对象的方法汇总
- dreamweaver 8实现Jquery自动提示
- jquery实现动态画圆
- javascript数组遍历for与for in区别详解
- 详谈nodejs异步编程
- c#+JQurey实现获取radio和checkbox的值
- express的中间件cookieParser详解
- express的中间件bodyParser详解
- express的中间件basicAuth详解
- 详解JS函数重载
- 如何让你的Lightbox支持滚轮缩放及Base64图片
- javascript常用代码段搜集
- 5种处理js跨域问题方法汇总