公共cookie存儲方法

cookie存儲涉及到幾個參數,當其中的參數不一樣的時候,可能導致,cookie的key可以相同。
常用的:

  1. name
  2. Domain
  3. Path
  4. secure
 cookie: function(name, value, options) {
    if (typeof value != 'undefined') {
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString();
        }
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else {
        var cookieValue = null;
        if (document.cookie) {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = $.trim(cookies[i]);
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
},
removeCookie: function(cookieName) {
    var cookies = document.cookie.split(";");//將所有cookie鍵值對通過分號分割爲數組
    //循環遍歷所有cookie鍵值對
    for (var i = 0; i < cookies.length; i++) {
        //有些cookie鍵值對前面會莫名其妙產生一個空格,將空格去掉
        if (cookies[i].indexOf(" ") == 0) {
            cookies[i] = cookies[i].substring(1);
        }
        //比較每個cookie的名稱,找到要刪除的那個cookie鍵值對
        var cookie_name = cookies[i].split("=")[0];
        if (cookie_name == cookieName) {
            var exp = new Date();
            exp.setTime(exp.getTime() - 6000 * 1000);
            document.cookie = cookies[i] + ";path=/;domain=.imihuan.com;expires=" + exp.toUTCString();
            break;
        }
    }
},
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章