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

 更新时间:2014年12月03日 17:32:53   投稿:hebedich  
本文是上一篇文章《用js读、写、删除Cookie代码分享及详细注释说明》发现了些问题,进行分析解决,推荐给大家

上次的一篇文章:用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常见数字进制转换实例分析

    这篇文章主要介绍了javascript常见数字进制转换,结合实例形式分析了JavaScript十进制,十六进制及二进制的相互转换原理与技巧,需要的朋友可以参考下
    2016-04-04
  • 用js来刷新当前页面保留参数的具体实现

    用js来刷新当前页面保留参数的具体实现

    本文为大家详细介绍下如何使用js来刷新当前页面保留参数,下面有个不错的实现大家可以看看
    2013-12-12
  • ES6学习笔记之map、set与数组、对象的对比

    ES6学习笔记之map、set与数组、对象的对比

    这篇文章主要给大家介绍了关于ES6学习笔记之map、set与数组、对象对比的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03
  • JS数字千分位格式化实现方法总结

    JS数字千分位格式化实现方法总结

    这篇文章主要介绍了JS数字千分位格式化实现方法,结合实例形式总结分析了JS实现数字千分位格式化的常用技巧,包括字符串的分割、拼接、遍历及正则操作等相关实现技巧,需要的朋友可以参考下
    2016-12-12
  • js给table赋值的实例代码

    js给table赋值的实例代码

    下面小编就为大家带来一篇js给table赋值的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • 每天一篇javascript学习小结(Function对象)

    每天一篇javascript学习小结(Function对象)

    这篇文章主要介绍了javascript中的Function对象知识点,对Function对象的基本使用方法,以及各种方法进行整理,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • 你不知道的Git log还有这种用法

    你不知道的Git log还有这种用法

    这篇文章主要为大家介绍了你不知道的Git log竟然还有这种用法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • prettify 代码高亮着色器google出品

    prettify 代码高亮着色器google出品

    prettify是Google提供的一款源代码语法高亮着色器,它提供一种简单的形式来着色HTML页面上的程序代码,最值得亮点的地方是不需要指明代码的语言类型,它会自动进行判断。
    2010-12-12
  • 不同浏览器对回车提交表单的处理办法

    不同浏览器对回车提交表单的处理办法

    在浏览器中填写表单的时,可以直接在“文本框”中敲击“Enter”来提交表单,很是方便。
    2010-02-02
  • layui 数据表格复选框实现单选功能的例子

    layui 数据表格复选框实现单选功能的例子

    今天小编就为大家分享一篇layui 数据表格复选框实现单选功能的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09

最新评论