JS Cookie 增 改 (删) 查 基本操作

功能

主要实现的功能是有个活动的结果弹窗需要每天进入页面时自动弹出来一次,然后点击关闭之后,当天只弹出一次,直到活动结束 2018-1-1 为止


实现逻辑

  • 使用 addCookie SetCookie getCookie 三个公用的方法来实现操作
  • 首次载入页面时先判断当前时间是否在活动时间内,之后使用 getCookie 判断 cookie 是否存在:
    如果不存在使用 addCokie 添加 cookie(这里的 cookie 的值我设置为当天的日期值了)并弹出弹窗;
    如果存在的话判断 cookie 的值,如果等于当天的日期值弹出弹窗
  • 在关闭弹窗的时候也得先判断是否有这个 cookie ,因为可能活动已经结束了,再使用 SetCookie 对 cookie 的值进行修改,这里将当天的日期值加 1 后的值赋给 SetCookie 的第二个参数,再用活动结束后的时间减去当天的时间最后算出离活动还有几天的天数,将这个天数的值当作是 SetCookie 的第三个参数,这里需要注意的是如果天数小于 1 那么这个方法执行完之后会默认将 cookie 删掉
  • 整个的执行测试过程:在今天进入这个页面之后因为没有 cookie 会生成这个 cookie ,cookie 的有效时间至活动结束之前(addCookie 的第三个参数,这个是按照小时数换算的),cookie 的值(第二个参数)设置为当天的日期,这时点击关闭弹窗的按钮修改 cookie 的日期值,之后在今天的其他时间之内再次进入页面的时候会进行日期判断,此时的日期值会是明天的所以不会弹出弹窗,到了第二天再次进入时因为日期值又相等了,所以还会有弹窗,然后点击关闭日期加 1 ,这样直至活动结束,最后在 2018-1-1 日进入时,弹出弹窗之后再点击关闭按钮,时间相减的值取整数为 0 ,这样 SetCookie 执行后会自动将这个 cookie 删掉了

贴代码

//三个公用方法
//添加cookie
function addCookie(objName, objValue, objHours) {
    var str = objName + "=" + escape(objValue);
    if (objHours > 0) {                               //为0时不设定过期时间,浏览器关闭时cookie自动消失
        var date = new Date();
        var ms = objHours * 3600 * 1000;
        date.setTime(date.getTime() + ms);
        str += "; expires=" + date.toGMTString();
    }
    document.cookie = str + "; path=/";
}
//修改cookie
function SetCookie(c_name, value, expiredays) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString()) + "; path=/";
}
//取cookies函数   
function getCookie(name) {
    var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
    if (arr != null) return unescape(arr[2]); return null;
}
//页面脚本中用到的地方,下面的 #now_date1 的 value 是服务器获取的当前的百度时间 供 JS 调用
var nowDate = $('#now_date1').val();//服务器当前时间
  //增加弹窗 cookie 
    this.addpopupcookie = function () {
        var _me = this;
        var start = new Date(nowDate);
        var end = new Date('2018/1/2');
        if (start < end) {
            var cookiestr = getCookie('popuptoogle');
            if (!cookiestr) {
                var date = start.getDate() + '';
                var hours = parseInt((end - start) / 1000 / 3600);
                addCookie('popuptoogle', date, hours);
                $('.lay-popup5').show();
            } else if (parseInt(cookiestr) <= start.getDate()) {
                $('.lay-popup5').show();
            }
        }
        return _me;
    };
//公用的关闭弹窗
    this.closelaypopup = function (e) {
        var _me = this;
        //console.log(e.target.parentNode.parentNode.parentNode);
        if (e != null && getCookie('popuptoogle')) {
            if ($(e.target.parentNode.parentNode.parentNode).hasClass('lay-popup5')) {
                var now = new Date(nowDate);
                var date = now.getDate() + 1 + '';
                var days = parseInt((new Date('2018/1/2') - now) / 1000 / 3600 / 24);
                SetCookie('popuptoogle', date, days);
            }
        }
        $('#lay-popup-bg,.lay-popup').hide();
        _me.ioslayclosepopup();
        return _me;
    };
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,194评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,058评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,780评论 0 346
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,388评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,430评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,764评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,907评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,679评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,122评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,459评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,605评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,270评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,867评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,734评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,961评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,297评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,472评论 2 348

推荐阅读更多精彩内容

  • 什么是 Cookie “cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就...
    恩德_b0c2阅读 400评论 0 3
  • 什么是 Cookie “cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就...
    小旭同志阅读 465评论 1 1
  • 如何修改一次代码就可以完成多种类型 cell 的 UITableView 增删修改顺序? 前言 当一个 table...
    itzhangbao阅读 3,464评论 0 4
  • 遇到很多的人,然后又和很多的人遇到,形形色色的人来来往往,已经分不清谁本可能成为你生命的另一种格式,却因各种理由而...
    会飞的乌龟阅读 371评论 1 1