設置cookie方法:
原理:
document.cookie='name=wk'
注:cookie在靜態頁面中是空的,無法使用;必須在web服務器部署下才可以使用。
/**
* 設置cookie
* @param name 鍵
* @param val 值
* @param exday 有效期(天)
*/
function setCookie (name, val, exday) {
let d = new Date()
let expires = ''
if (exday) {
d.setTime(d.getTime() + (exday * 24 * 60 * 60 * 1000))
expires = '; expires=' + d.toGMTString()
}
document.cookie = name + '=' + val + expires
}
獲取cookie:
/**
* 獲取cookie
* @param name
* @returns {string}
*/
function getCookie (name) {
let data = ''
if (document.cookie) {
let arr = document.cookie.split(';')
for (let str of arr) {
let temp = str.split('=')
if (temp[0].replace(/(^\s*)/g, '') === name) {
data = unescape(temp[1])
break
}
}
} else {
console.warn('cookie不存在')
}
return data
}
清除cookie:
原理:
cookie中的鍵(屬性)爲expires
,設置cookie的有效期。
通過設置cookie的有效期爲當前時間之前的時間。
/**
* 清除cookie值
* @param name
*/
function clearCookie (name) {
let exp = new Date()
exp.setTime(exp.getTime() - 1)
let val = getCookie(name)
if (val != null) document.cookie = name + '=' + val + ';expires=' + exp.toGMTString()
}