传智播客旗下技术交流社区北京校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© AMay 中级黑马   /  2019-1-14 16:15  /  87 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

【简介】
         JavaScript中的另一个机制:cookie,则可以达到真正全局变量的要求。 cookie是浏览器 提供的一种机制,它将document 对象的cookie属性提供给JavaScript。浏览器只提供了doucment.cookie属性,如果需要操作,我们需要手动封装操作方法。
但是由于设置cookie的值时只能设置字符串,所以对取值和存值都不方便。下面封装一组cookie增,删,改,查的代码段
【设置cookie值】
添加cookie 值为中文需要转码,重复名称会覆盖
[JavaScript] 纯文本查看 复制代码
function setCookie(name, val, day) {

  let expireDate = new Date();

  expireDate.setDate(expireDate.getDate() + day);

  document.cookie = `${name}=${val};expires=${expireDate.toGMTString()}`;

}
使用:
setCookie(“name”,”哈哈”,1000)
通常我们只需要名称、值和生命期,更多的属性设置修改按照prop=val;的形式修改最后一条代码即可
【读取cookie值】
读取cookie 返回一个包含cookie键值对的数组
[JavaScript] 纯文本查看 复制代码
function getCookies() {

  let cookies = [];

  if(document.cookie) {

    let cookieArr = document.cookie.split(';');

    for (let i = 0;i<cookieArr.length;i++) {

      let keyArr = cookieArr[i].split("=");

      let name = keyArr[0];

      let val = keyArr[1];

      cookies.push({name: val});

    }

  } else {

    return false;

  }

  return cookies;

}
使用:
         因为前面进行了设置,所以:
         console.log(getCookies()[0].name)  // 哈哈
【删除cookie
删除cookie 把失效日期设置为过期
[JavaScript] 纯文本查看 复制代码
function removeCookie(name) {

  let cookies = getCookies();

  if (cookies) {

    for(let cookie of cookies) {

     if(cookie.name === name) {

        setCookie(name, null, -99);

        break;

      }

    }

  } else {

    return false;

  }

}

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马