用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 相关文章推荐
jQuery 版本的文本输入框检查器Input Check
Jul 09 Javascript
Javascript高级技巧分享
Feb 25 Javascript
JQuery实现鼠标滚轮滑动到页面节点
Jul 28 Javascript
JavaScript检查子字符串是否在字符串中的方法
Feb 03 Javascript
JS之获取样式的简单实现方法(推荐)
Sep 13 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
Dec 07 Javascript
JS实现touch 点击滑动轮播实例代码
Jan 19 Javascript
Node.js中的require.resolve方法使用简介
Apr 23 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
Jun 12 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
May 14 Javascript
javascript canvas检测小球碰撞
Apr 17 Javascript
微信小程序自定义弹出层效果
May 26 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 strtok()函数的优点分析
2010/03/02 PHP
调试一段PHP程序时遇到的三个问题
2012/01/17 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
accesskey 提交
2006/06/26 Javascript
Stop SQL Server
2007/06/21 Javascript
jquery实现心算练习代码
2010/12/06 Javascript
JQuery魔力之$(&quot;tagName&quot;)与selector
2012/03/05 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
用javascript将数据导入Excel示例代码
2014/09/10 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
深入理解vue.js中的v-if和v-show
2017/06/22 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
jQuery中元素选择器(element)简单用法示例
2018/05/14 jQuery
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
vue使用video.js进行视频播放功能
2019/07/18 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
解决vue打包 npm run build-test突然不动了的问题
2020/11/13 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
详解Django中类视图使用装饰器的方式
2018/08/12 Python
python如何制作缩略图
2019/04/30 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
使用pycharm在本地开发并实时同步到服务器
2019/08/02 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
将Python文件打包成.EXE可执行文件的方法
2019/08/11 Python
python 安装impala包步骤
2020/03/28 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
HTML5和以前HTML4的区别整理
2013/10/20 HTML / CSS
Ramy Brook官网:美国现代女装品牌
2019/06/18 全球购物
北大自主招生自荐信
2013/10/19 职场文书
作风转变心得体会
2014/09/02 职场文书
如何写辞职信
2015/05/13 职场文书
Python的三个重要函数详解
2022/01/18 Python