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);
}
}