用js读、写、删除Cookie代码续篇


Posted in Javascript onDecember 03, 2014

上次的一篇文章:用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();

}
Javascript 相关文章推荐
js实现日期级联效果
Jan 23 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
Apr 14 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
Jun 05 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
Mar 14 Javascript
JavaScript调用浏览器打印功能实例分析
Jul 17 Javascript
js实现简单的联动菜单效果
Aug 19 Javascript
微信小程序实现表单校验功能
Mar 30 Javascript
Three.js入门之hello world以及如何绘制线
Sep 25 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
Dec 20 Javascript
详解javascript 正则表达式之分组与前瞻匹配
May 30 Javascript
JS实现百度网盘任意文件强制下载功能
Aug 31 Javascript
关于微信公众号开发无法支付的问题解决
Dec 28 Javascript
js字符串完全替换函数分享
Dec 03 #Javascript
基于jquery实现等比缩放图片
Dec 03 #Javascript
javascript简单实现图片预加载
Dec 03 #Javascript
3种Jquery限制文本框只能输入数字字母的方法
Dec 03 #Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
Dec 03 #Javascript
javascript中clone对象详解
Dec 03 #Javascript
javascript使用正则表达式检测IP地址
Dec 03 #Javascript
You might like
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
1 Tube Radio
2021/03/02 无线电
咖啡语言
2021/03/03 咖啡文化
BBS(php &amp; mysql)完整版(三)
2006/10/09 PHP
模仿OSO的论坛(五)
2006/10/09 PHP
PHP动态分页函数,PHP开发分页必备啦
2011/11/07 PHP
解析thinkphp中的M()与D()方法的区别
2013/06/22 PHP
使用php显示搜索引擎来的关键词
2014/02/13 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
php测试kafka项目示例
2020/02/06 PHP
node.js中的path.sep方法使用说明
2014/12/08 Javascript
require.js的用法详解
2015/10/20 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
jsp 网站引入外部css或者js失效问题解决
2016/10/31 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
详解基于webpack搭建react运行环境
2017/06/01 Javascript
关于JS模块化的知识点分享
2019/10/16 Javascript
vue使用recorder.js实现录音功能
2019/11/22 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
python爬虫的数据库连接问题【推荐】
2018/06/25 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
英国门把手公司:Door Handle Company
2019/05/12 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
励志演讲稿大全
2014/08/21 职场文书
支行行长竞聘报告
2014/11/06 职场文书
顶岗实习协议书
2015/01/29 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android