cookie模板

var cookie_vs = {

    /**
     * 瀏覽器內核信息
     */
    browser: (function() {
        var ua = navigator.userAgent.toLowerCase();
        var vr = (ua.match(/.+(?:rv|it|ra|ie)[\/:\s]([\d.]+)/) || [0,'0'])[1];
        return {
            webkit: /webkit/.test(ua) && vr,
            gecko: /gecko\/\d+/.test(ua) && vr,
            opera: /opera/.test(ua) && vr,
            msie: /msie\s|trident/.test(ua) && !/opera/.test(ua) && vr,
            charset: (document.charset || document.characterSet).toLowerCase(),
            html5: typeof(Worker) !== 'undefined',
            ios: /iphone|ipad|ipod/i.test(ua)
        }
    })(),
    /**
     * 瀏覽器Cookie管理
     * @param name 待操作的cookie名
     * @param data 待操作的cookie值
     * @param args 可選參數, {expires:1, secure:true, domain:'anrip.com', path:'/'}
     * 讀取cookie的值: $.cookie(name);
     * 設置cookie的值: $.cookie(name, data, args);
     * 刪除cookie的值: $.cookie(name, null, args);
     * 清空cookie的值: $.cookie(null, args);
     */
    cookie: function(name, data, args) {
        //清空Cookie
        if(name === null) {
            var cookie = document.cookie || '';
            var c, cs = cookie.split('; ');
            for(var i=0; i < cs.length; i++) {
                c = cs[i].split('=');
                if(c.length > 0) {
                    $.cookie(c[0], null, data);
                }
            }
            return true;
        }
        //讀取Cookie
        if(data === undefined) {
            var cookie = document.cookie;
            if(cookie) {
                var pos1, pos2;
                pos1 = cookie.indexOf(name + '=');
                if(pos1 != -1) {
                    pos1 = pos1 + name.length + 1;
                    pos2 = cookie.indexOf(';', pos1);
                    if(pos2 == -1) { pos2 = cookie.length; }
                    return decodeURIComponent(cookie.substring(pos1, pos2));
                }
            }
            return null;
        }
        //設置Cookie
        if(name) {
            args = args || {};
            if(data === null) {
                name += '='; args.expires = -1;
            } else {
                name += '=' + encodeURIComponent(data);
            }
            if(args.expires) {
                if(typeof(args.expires) == 'number') {
                    var expires = new Date();
                    expires.setTime(expires.getTime() + args.expires*1000);
                    name += '; expires=' + expires.toGMTString();
                }
                else if(args.expires.toGMTString) {
                    name += '; expires=' + args.expires.toGMTString();
                }
            }
            if(args.path) { name += '; path=' + args.path; }
            if(args.domain) { name += '; domain=' + args.domain; }
            if(args.secure) { name += '; secure'; }
            document.cookie = name;
        }
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章