用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 相关文章推荐
JavaScript.Encode手动解码技巧
Jul 14 Javascript
三级下拉菜单的js实现代码
May 23 Javascript
一个基于jquery的文本框记数器
Sep 19 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
Apr 19 Javascript
JS随机生成不重复数据的实例方法
Jul 17 Javascript
jquery提交form表单时禁止重复提交的方法
Feb 13 Javascript
JavaScript中的原始值和复杂值
Jan 07 Javascript
JavaScript常用字符串与数组扩展函数小结
Apr 24 Javascript
React如何将组件渲染到指定DOM节点详解
Sep 08 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
Dec 28 Javascript
javascript 数组精简技巧小结
Feb 26 Javascript
token 机制和实现方式
Dec 15 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
PHP APC配置文件2套和参数详解
2014/06/11 PHP
ThinkPHP令牌验证实例
2014/06/18 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
不错的一个日期输入 动态
2006/11/06 Javascript
javascript实现的使用方向键控制光标在table单元格中切换
2010/11/17 Javascript
利用JQuery的load函数动态加载其它页面的内容的实现代码
2010/12/14 Javascript
artDialog 4.1.5 Dreamweaver代码提示/补全插件 附下载
2012/07/31 Javascript
JavaScript中的prototype.bind()方法介绍
2014/04/04 Javascript
从JQuery源码分析JavaScript函数的apply方法与call方法
2014/09/25 Javascript
node.js操作mongodb学习小结
2015/04/25 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
JS中多种方式创建对象详解
2016/03/22 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
关于JS中的方法是否加括号的问题
2016/07/27 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
JSON与JS对象的区别与对比
2017/03/01 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
JavaScript 正则应用详解【模式、欲查、反向引用等】
2020/05/13 Javascript
JavaScript中展开运算符及应用的实例代码
2021/01/14 Javascript
JavaScript 生成唯一ID的几种方式
2021/02/19 Javascript
从零学python系列之数据处理编程实例(二)
2014/05/22 Python
python有证书的加密解密实现方法
2014/11/19 Python
Python 由字符串函数名得到对应的函数(实例讲解)
2017/08/10 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
快速解决vue.js 模板和jinja 模板冲突的问题
2019/07/26 Python
简单了解python协程的相关知识
2019/08/31 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
python生成word合同的实例方法
2021/01/12 Python
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
Android面试题及答案
2015/09/04 面试题
2015年元旦文艺汇演主持词
2014/03/26 职场文书
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python