cookie的get set方法封裝

設置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()
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章