js 操作cookie

来源:互联网 发布:淘宝网女式运动服 编辑:程序博客网 时间:2024/06/10 08:24
$(function(){    /**     * version 1.0     * 功能:此文件旨在通过js操作cookie,包括cookie的读和写     * 作者:郭军周     * Email:853547029@qq.com     * 使用举例:     *      window.__cookie.setCookie(string key,string value,int time);     *      window.__cookie.getCookie(string key);     * 几点说明:     *      1:cookie 以字符串的形式保存在 document.cookie 中     *      2:window 对象持有 document 对象的只读引用。这决定了,我们可以通过 window.document.cookie 的     *          方式,获取这个 cookie 字符串,但这种方式不能够实现对cookie的赋值。即:     *          window.document.cookie = 'aaa'; 并不能改变cookie     *          此时,我们应该通过 document.cookie = 'aaa'; 的方式进行对cookie的修改     *      3:对于 cookie 过期时间的几点说明:     *          3.1:这个时间,以“毫秒”为单位,1000ms = 1s;     *          3.2:只有当 cookie 中的该“键值对”还未过期时,document.cookie 中才有该键值对的字符串形式。     *              简言之,在获取 cookie 时,并不需要手动对过期时间进行验证,因为,如果过期,将得不到此值。     *          3.3:至于,该键值对,是否过期,以及过期的处理,是由浏览器本身来实现的。     *      4:对于设置 cookie 时 key,value,expire 的几点说明:     *          4.1:推荐 window.__cookie.setCookie(string,string,int)。下面的调用方式,可能造成各种莫名的问题,不建议。     *              window.__cookie.setCookie(1,2,30000);     *              window.__cookie.setCookie('',2,30000);     *              window.__cookie.setCookie(2,'',30000);     *              window.__cookie.setCookie(3,'',30000);     *              window.__cookie.setCookie('_','',30000);     *              window.__cookie.setCookie(-1,'',30000);     *              window.__cookie.setCookie(';','',30000);     *          4.2:setCookie 和 getCookie 的参数说明:     *              并未对其参数做过多验证,比如:key 应该满足变量的命名规范。因为,php确实能够处理关联数组。     **/    window.__cookie = {        'cookieEnabled' : window.navigator.cookieEnabled,        'setCookie' : function(key,value,expire){            if(!this.cookieEnabled){                alert('浏览器未开启或者cookie功能!');                return false;            }            var exdate = new Date();            exdate.setTime(exdate.getTime()+expire);            var c_nvalue=escape(value) + ((expire==null) ? "" : "; expires="+exdate.toUTCString());            if(this.getCookie(key) == null){                document.cookie = key + "=" + c_nvalue + document.cookie;            }else{                var c_value = window.document.cookie;                var c_start = c_value.indexOf(" " + key + "=");                if(c_start == -1){                    c_start = c_value.indexOf(key + "=");                }                c_start = c_value.indexOf("=", c_start) + 1;                var c_end = c_value.indexOf(";", c_start);                if(c_end == -1){                    c_end = c_value.length;                }                document.cookie = c_value.substring(0,c_start) + c_nvalue + c_value.substring(c_end,c_value.length);            }        },        'getCookie' : function(c_name){            if(!this.cookieEnabled){                alert('浏览器未开启或者cookie功能!');                return false;            }            var c_value = window.document.cookie;            var c_start = c_value.indexOf(" " + c_name + "=");            if(c_start == -1){                c_start = c_value.indexOf(c_name + "=");            }            if(c_start == -1){                c_value = null;            }else{                c_start = c_value.indexOf("=", c_start) + 1;                var c_end = c_value.indexOf(";", c_start);                if(c_end == -1){                    c_end = c_value.length;                }                c_value = unescape(c_value.substring(c_start,c_end));            }            return c_value;        }    }});

0 0
原创粉丝点击