Cookie 封装添加set,获取get,删除unset,清空clear功能

 <!--

        1. 键:cookie 的名称,存储时一般要经过 URL 编码(使用encodeURI()方法);

        2. 值:cookie 的取值,同样必须经过 URL 编码;

        3. 域(domain):指明 cookie 对于哪个域是有效的;

        4. 路径(path):指明域中哪个路径才可以使用这个 cookie;

        5. 失效时间(expires):表示 cookie 何时应该被删除,默认情况下,浏览器会话结束后就将所有 cookie 删除,

        不过也可以自己设置删除时间,如果设置的过期时间是过去的日期,则 cookie 会立即删除;

     -->

    <script>

      // 封装cookie

      // var CookieUtil = {

      //       set:  // 添加

      //       get:  // 获取

      //       unset: // 删除

      //       clear:  // 清空

      // }

      //   添加

      var CookieUtil = {

        set: function (key, val, day, domain, path) {

          // exp 现在的时间

          var exp = new Date();

          // 设置记录现在的天数和时间

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

          document.cookie =

            encodeURIComponent(key) +

            "=" +

            encodeURIComponent(val) +

            ";expires =" +

            exp.toGMTString() +

            ";domain =" +

            (domain ? domian : location.hostname) +

            ";path =" +

            (path ? path : location.pathname);

        },

        // 删除

        unset: function (key, domain, path) {

          this.set(key, "", -1, domain, path);

        },

        // 获取

        get: function (key) {

          var name = encodeURIComponent(key) + "=",

            start = document.cookie.indexOf(name);

          if (start > -1) {

            var end = document.cookie.indexOf(";", start);

            if (end === -1) {

              end = document.cookie.length;

            }

            return decodeURIComponent(

              document.cookie.substring(start + name.length, end)

            );

          } else {

            return null;

          }

        },

        // 清除

        clear: function (domain, path) {

          var pattern = /;{0,1}[\w,\%]+\=/g;

          var arr = document.cookie.match(pattern); // 获取所有键名(带等于号)

          for (var i = 0; i < arr.length; i++) {

            this.unset(

              decodeURIComponent(arr[i].slice(0, arr[i].length - 1)),

              domain,

              path

            );

          }

        },

      };

      CookieUtil.set("名字1", "张一", 10);

      CookieUtil.set("名字2", "张三", 10);

      CookieUtil.set("名字3", "李四", 10);

      //   CookieUtil.unset('名字')

      console.log(CookieUtil.get("名字"));

      CookieUtil.clear()

    </script>

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值