Cocococococookie

171 阅读1分钟

基础cookie

document.cookie = "nickname=123; shashasha = shashasha"

这样的cookie关闭浏览器就没了

加个过期时间

 let now = new Date()

 now.setMinutes(now.getMinutes() + 20)
 
 document.cookie = "nickname=123;expires="+ now.toUTCString()

这个亚子就能20分钟之后删除

如果放个负数,就是过期时间在过去,就会直接删除

设置cookie

基于之前,就可以封装个设置cookie的方法

function setCookie(key,val,expires){
            let now = new Date()

            now.setMinutes(now.getMinutes() + expires)
            
            document.cookie = `${key}=${val};expires=`+ now.toUTCString()
        }

删除cookie

删除就可以调用设置cookie,然后把过期时间设为负数(妙~~~啊~)

 function removeCookie(key){
            setCookie(key,null,-1)
        }

获取cookie

因为浏览器储存cookie都是用逗号空格分隔的所以可以把整个cookie用split变成数组,然后再用=分割出键和键值,然后存到对象里,就可以方便的获取cookie的值

 function getCookie(key) {
            let obj = {}
            document.cookie.split("; ").forEach(r => {
                let kv = r.split("=")
                obj[kv[0]]= kv[1]
            })
            if (key) return obj[key]
            return obj
          }

传进指定的键就能获取指定的值,不传会获取全部