JS常用代碼

JS -- cookie

// name: cookie唯一的名稱 cookie必須經過URL編碼 不區分大小寫 實踐中最好當作cookie區分大小寫
// value: 字符串值 必須經過URL編碼
// expires: 失效時間 cookie何時被刪除的時間戳 默認情況下會話結束立即將所有cookie刪除
// path: 域 所有向該域的請求中都會包含cookie 可以包含子域名 也可以不包含
// domain: 路徑 對於指定域中的那個路徑 應該向服務器發送cookie
// secure: 安全標誌 指定後,cookie只有在使用SSL連接時纔會發送到服務器 是cookie中唯一一個非名值對的,直接包含secure

var cookieUtil = {
    get: function(name) {
        var cookieName = encodeURIComponent(name) + "=",
            cookieStart = document.cookie.indexOf(cookieName),
            cookieValue = null;
        if(cookieStart > -1) {
            var cookieEnd = document.cookie.indexOf(';', cookieStart);
            if(cookieEnd === -1) {
                cookieEnd = document.cookie.length;
            }
            cookieValue = decodeURIComponent(document.cookie.substring(cookieStart+cookieName.length, cookieEnd));
        }
        return cookieValue;
    },
    set: function(name, value, expires, path, domain, secure) {
        var cookieText = encodeURIComponent(name)+'='+encodeURIComponent(value);
        if(expires instanceof Date) {
            cookieText += '; expires=' + expires.toGMTString();
        } else if(typeof expires === 'number') {
            cookieText += '; expires=' + (new Date(expires*24*60*60*1000+Date.now())).toGMTString();
        }
        // (new Date(毫秒數)).toGMTString()
        // 7天后 (new Date(7*24*60*60*1000+Date.now())).toGMTString()
        if(path) {
            cookieText += '; path=' + path;
        }
        if(domain) {
            cookieText += '; domain=' + domain;
        }
        if(secure) {
            cookieText += '; secure';
        }
        document.cookie = cookieText;
    },
    unset: function(name, path, domain, secure) {
        this.set(name, '', new Date(0), path, domain, secure);
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章