JavaScript的Cookie学习使用

简介

  1. 在编程领域,Cookie 代表一种小型的文本文件,可以让开发人员在用户计算机上存储少量的数据(大约 4kb),来记录用户的某些信息。
  2. Cookie 由若干个键/值对组成(例如key1=value1;key2=value2),一个 Cookie 最大可以存储 4kb 的数据,超过长度的 Cookie 将被忽略。
  3. 不要在 Cookie 中存储账号、密码等敏感信息。

使用Cookie

获取Cookie

使用document.cookie,会返回一个字符串。
为了获取单个 Cookie 的值,我们可以通过 split() 函数将包含 Cookie 信息的字符串拆分为数组,然后再获取某个 Cookie 的值

getcookie: function (name) {
    //获取name在Cookie中起止位置
    var start = document.cookie.indexOf(name + "=");

    if (start != -1) {
      start = start + name.length + 1;
      //获取value的终止位置
      var end = document.cookie.indexOf(";", start);
      if (end == -1)
        end = document.cookie.length;
      //截获cookie的value值,并返回
      return unescape(document.cookie.substring(start, end));
    }
    return "";
  }

设置Cookie

创建(设置)新的 Cookie 信息,需要以name=value形式的字符串来定义新的 Cookie 信息。
Cookie 数据中不能包含分号、逗号或空格。

  1. max-age 属性来指定 Cookie 可以存在的时间(单位为秒),默认为 -1,即关闭浏览器后失效
  2. path:设置cookie的作用域。例如网站的域名为 c.biancheng.net若 path 属性设置为/,则表示 Cookie 可在域名下的所有网页中使用。若 path 属性设置为/javascript/,则 Cookie 只可在 http://c.biancheng.net/javascript/ 下的网页中使用
  3. domain:设置子域名下可以使用。若将 domain 属性设置为.biancheng.net,则表示 Cookie 可在所有以biancheng.net结尾的域名下使用,注意,domain 属性值的第一个字符.不能省略。
  4. secure:表示 Cookie 将仅通过 HTTPS 协议传输
document.cookie = "url=http://c.biancheng.net/; path=/; domain=.biancheng.net; secure";
 setcookie: function (name, value, expdays) {
    if (expdays) {
      var expdate = new Date();
      //设置Cookie过期日期
      expdate.setDate(expdate.getDate() + expdays);
      //添加Cookie
      document.cookie = name + "=" + escape(value) + ";expires=" + expdate.toUTCString() + ";path=/;";
    } else {
    document.cookie = name + "=" + escape(value) + ";path=/;";
    }
  }

修改或更新 Cookie

修改或更新 Cookie 值的唯一方法就是创建一个同名的 Cookie,来替换要修改的 Cookie

// 创建一个 Cookie
document.cookie = "url=http://c.biancheng.net/; path=/; max-age=" + 30*24*60*60;
// 修改这个 Cookie
document.cookie = "url=http://c.biancheng.net/javascript/; path=/; max-age=" + 365*24*60*60;

删除 Cookie

删除 Cookie 与修改 Cookie 类似,只需要重新将 Cookie 的值设置为空,并将 expires 属性设置为一个过去的日期即可

delcookie: function (name) {
    my_commons.setcookie(name, "", -1);
}
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值