1.设置cookie
参数说明:
key cookie的名称
value cookie的值
time cookie的过期时间 秒
// 设置cookie
function setItem(key, value, time) {
let expires = null
// 判断传过来time没有,设置cookie过期时间,若没有为会话级
if (time) {
let d = new Date()
let times = d.getTime() + time * 1000
d.setTime(times)
expires = d.toUTCString()
}
document.cookie = `${key}=${value};expires=` + expires
}
2.获取单个cookie
// 获取单个cookie的值
function getItem(key) {
let obj = {}
let arr = document.cookie.split('; ')
arr.forEach(it => {
let res = it.split('=')
obj[res[0]] = res[1]
})
return obj[key]
}
3.删除单个cookie
这里应用的原理就是调用设置cookie的函数把你要删除的cookie的过期时间设置为-1,它已经过期自动移除了
// 删除单个cookie
function removeItem(key) {
setItem(key, 0, -1)
}
4.清空cookie
清空所用cookie就是将所有cookie获取到后遍历数组然后调用删除单个cookie的函数进行过期处理
// 清除所有的cookie
function clear() {
let obj = {}
let arr = document.cookie.split('; ')
arr.forEach(it => {
let res = it.split('=')
removeItem(res[0])
})
}
5.整理封装到一个自执行函数当中后得到一个自定义的cookie方法:
const cookie = (function () {
/*
@params {String} key cookie的名称
@params {String} value cookie的值
@params {Number} time cookie的过期时间 秒
*/
// 设置cookie
function setItem(key, value, time) {
let expires = null
// 判断传过来time没有,设置cookie过期时间,若没有为会话级
if (time) {
let d = new Date()
let times = d.getTime() + time * 1000
d.setTime(times)
expires = d.toUTCString()
}
document.cookie = `${key}=${value};expires=` + expires
}
// 获取单个cookie的值
function getItem(key) {
let obj = {}
let arr = document.cookie.split('; ')
arr.forEach(it => {
let res = it.split('=')
obj[res[0]] = res[1]
})
return obj[key]
}
// 删除单个cookie
function removeItem(key) {
setItem(key, 0, -1)
}
// 清除所有的cookie
function clear() {
let obj = {}
let arr = document.cookie.split('; ')
arr.forEach(it => {
let res = it.split('=')
removeItem(res[0])
})
}
let cookie = {
setItem,
getItem,
removeItem,
clear
}
return cookie
})()
6.调用
调用的时候将完整代码放入一个js文件当中,在你需要使用的文件里引入这个js文件
设置cookie:cookie.setItem(cookie名,cookie值,过期时间)
获取cookie:cookie.getItem(cookie名)
删除单个cookie:cookie.removeItem(cookie名,0,-1)
清空cookie:cookie.clear()