cookie设置今日不提醒功能

需求:为了实现 退出页面时 【启动今日不提醒】的功能。采用纯js、cookie来实现。

 

/****今日不提醒 start *****/
            var userid = <%=UserId %>;
            var cookieName = "tcdyh" + userid;//缓存名称
            if(cookies.getCookie(cookieName)==undefined) {//判断是否有缓存--没缓存就执行弹窗
                    /*****退出弹窗 start*******/ 
                    if (location.href.indexOf('#') < 0) {
                                history.pushState("", "", location.href + "#new"); //配合popstate事件使用
                            }
                        // 设置退出弹窗
                    setTimeout(function () {
                        window.addEventListener("popstate", function () {
                            $('#dyh').show(); //弹窗外框
                            $('.amusing').show();
                            $('.focus').show(); //二维码
                            $('.mask').hide();
                            $('.wrap_iframe').hide();
                            $('.sidebar').hide(300);
                        });
                    }, 2000); 
                    /****退出弹窗 end*********/
               }
            //根据选中框来添加和移除缓存
            $(":checkbox").on("change",function(){
                if ($(this)[0].checked) {
                    cookies.setCookie(cookieName,userid);
                } else {
                    cookies.removeCookie(cookieName);
                }
            });
            /****今日不提醒 end *****/

 

/*********JS操作cookies方法! ***************/
var cookies = {
    "setCookie": function (name, value) {//设置截止到当天23:59:59
        var curDate = new Date();
        //当前时间戳  
        var curTamp = curDate.getTime();
        //当前日期
        var curDay = curDate.toLocaleDateString();
        var curWeeHours = 0;
        curWeeHours = new Date(curDay).getTime() - 1;
        //当日已经过去的时间(毫秒)  
        var passedTamp = curTamp - curWeeHours;
        //当日剩余时间  
        var leftTamp = 24 * 60 * 60 * 1000 - passedTamp;
        var leftTime = new Date();
        leftTime.setTime(leftTamp + curTamp);
        //创建cookie  
        document.cookie = name + "=" + value + ";expires=" + leftTime.toGMTString() + ";path=/";
    },
    "getCookie": function (name) {
        //name 为想要取到的键值的键名
        var reg = /\s/g;
        var result = document.cookie.replace(reg, "");
        var resultArr = result.split(";");
        for (var i = 0; i < resultArr.length; i++) {
            var nameArr = resultArr[i].split("=");
            if (nameArr[0] == name) {
                return nameArr[1];
            }
        }
    },
    "removeCookie": function (name) {
        //name为想要删除的Cookie的键名
        var oDate = new Date(); //时间对象
        oDate.setDate(new Date().getDate() - 1);
        document.cookie = name + "=123;expires=" + oDate + ";path=/";
    }
};
/*********JS操作cookies方法! end ***************/

 

posted on 2017-03-22 09:29  o笨小孩o  阅读(425)  评论(0编辑  收藏  举报