博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cookie 读写类
阅读量:5169 次
发布时间:2019-06-13

本文共 2980 字,大约阅读时间需要 9 分钟。

/**Cookie 读写类    读:Cookie.get(name)    写:Cookie.set(name, value, domain, ttl/*是否持久* /)    删除: Cookie.clear(name)    绑定Cookie变化事件 Cookie.change(function(){}) */var Cookie = function () {    var prevCookie = null;    var _user = {};        jQuery(function(){        window.setInterval(function () {            if (!prevCookie || prevCookie != document.cookie) {                prevCookie = document.cookie;                jQuery(Cookie).trigger('cookie_change', prevCookie);            }        }, 1000);    });    return {        change: function(fn){        jQuery(this).bind('cookie_change', fn);        },        clear: function (name , domain) {            var date = new Date();            date.setTime(date.getTime() - 24 * 60 * 60 * 1000*10);            var cookie = name + "="+Cookie.get('show_div')+"; expires=" + date.toGMTString() + "; path=/;domain=."+domain;            document.cookie = cookie;        },        set: function (name, value, domain, ttl) {            var value = value ? encodeURIComponent(typeof(value) == 'string' ? value : JSON.stringify(value)) : "";            var expires = "";            if (value === "") {                ttl = -1;            }            if (typeof(ttl) != "undefined") {                var date = new Date();                date.setTime(date.getTime() + (ttl * 24 * 60 * 60 * 1000));                expires = "; expires=" + date.toGMTString();            }            try {                if (jQuery.browser.msie && value !== "") {                    var extra = 56 + (domain||'').length;                    var cookieByteLen = 0;                    if (document.cookie) {                        var cookieArr = document.cookie.split(/;\s*/);                        cookieByteLen = cookieArr.length * extra + document.cookie.length;                    }                    var _302e = Cookie.get(name, false);                    var _302f = _302e ? _302e.length : 0;                    if ((cookieByteLen + value.length - _302f) > 4096) {                        throw ("exceeds 4096 byte limit for cookie");                    }                }                document.cookie = name + "=" + value + expires + "; path=/;" + (domain ? (" domain=." + domain) : "");                return true;            } catch(e) {                return false;            }        },        get: function (name, parse) {            var cookieArr = document.cookie.split(/;\s*/);            for (var i = 0; i < cookieArr.length; ++i) {                var bits = cookieArr[i].split("=", 2);                if (bits[0] == name) {                    if (parse) {                        try {                            return eval("(" + decodeURIComponent(bits[1]) + ")");                        } catch(e) {}                    } else {                        return decodeURIComponent(bits[1]);                    }                }            }            return null;        }    };} ();

 

转载于:https://www.cnblogs.com/bandbandme/p/4539804.html

你可能感兴趣的文章
linux 协议栈之socket,Linux协议栈之BSD和INET socket层(一)
查看>>
linux14.04 显卡1060,ubuntu14.04+GTX1060 重新安装显卡驱动
查看>>
树莓派4b和linux,请问树莓派4b的两个hdmi输出是基于什么考虑?
查看>>
c语言指void函数的指针,用void*存储函数指针,如何知道函数指针的类型
查看>>
北京信息科技大学考研c语言考试,2018年北京信息科技大学计算机院814数据结构和C语言程序设计[专硕]之C程序设计考研核心题库...
查看>>
微机原理冒泡法排序c语言,微机原理实验报告-冒泡排序.docx
查看>>
电大考试c语言写出函数功能,电大考试c语言写出函数功能
查看>>
c语言解析yaml文件,YAML课程
查看>>
请简述android项目中res目录中各子目录的作用,对Android项目工程里的文件,下面哪个描述是错误的?()A.res目录:该目录存放程序中需要使用的资 - 众答网问答...
查看>>
红米note9 android10,红米note10对比红米note9真的有提升吗-在哪些地方做了降级
查看>>
html页面如何获取上下文,HTML页面使用js获取项目上下文路径
查看>>
html frameset 属性,html frameset标签怎么用?html frameset标签属性详解
查看>>
$.post html5,ajax - HTML5 Post Request Body - Stack Overflow
查看>>
Mac outlook设置HTML,设置苹果MAC 端outlook客户端说明
查看>>
静默安装 apk html,静默安装was
查看>>
html 英文js中大写,JavaScript_javascript实现英文首字母大写,方法一:function replaceStr(st - phpStudy...
查看>>
html5 离子,html5 – 在离子中创建一个表
查看>>
html瀑布流布局是什么,瀑布流布局图片与css多种实现思路剖析
查看>>
总结html标签及用法,HTML常用标签总结
查看>>
陌上花开(三维偏序)(cdq分治)
查看>>