zoukankan      html  css  js  c++  java
  • Cookie封装(设置,获取、删除)详解


    转载:https://www.cnblogs.com/maderlzp/p/7843365.html

    如图下所示:

    需求:选中右上角单选框某个颜色值时,导航栏主题色同步改变成选中颜色,当刷新页面时候,选中的颜色仍然选中之前关闭的颜色;

    cookie的主要作用:

    Cookie主要用在以下三个方面:

    • 会话状态管理(如用户登录状态、购物车、游戏分数和其它需要记录的信息)
    • 个性化设置(如用户自定义设置、主题等)
    • 浏览器行为跟踪(如跟踪分析用户行为)
    /**
     * 2、改变导航栏头部颜色
     */
    $('.theme_color_checkbox li').on('click'function () {
      $(this).addClass('icondagou').siblings().removeClass('icondagou');
      var inputIndex = $(this).index();//获取到选中颜色的下标
      $('.header_wrap .nav').attr('class''nav color_label_' + (inputIndex + 1));
      // localStorage.setItem('themeColor', inputIndex);
      setCookie('themeColorCookie'inputIndex7);//设置7天之后过期

    })
    // var ThemeColorIndex = localStorage.getItem('themeColor');
    var ThemeColorIndex = getCookie('themeColorCookie');
    if (ThemeColorIndex) {
      let nav = ThemeColorIndex + 1;
      $('.theme_color_checkbox li').eq(ThemeColorIndex).addClass('icondagou').siblings().removeClass('icondagou');
      $('.header_wrap .nav').attr('class''nav color_label_' + (ThemeColorIndex * 1 + 1));
    }
    /**
     * 
     * @param {*} name //cookie的名称
     * @param {*} value //cookie的值
     * @param {*} day //cookie的过期时间
     */
    function setCookie(namevalueday) {
      if (day !== 0) {
        var expires = day * 24 * 60 * 60 * 1000;//转化为秒
        var date = new Date(+new Date() + expires);
        document.cookie = name + '=' + value + ';expires=' + date.toUTCString();
      } else {
        document.cookie = name + "=" + escape(value);
      }
    }
    /**
     * 
     * @param {*} name //cookie的名称
     */
    function getCookie(name) {
      var arr;
      var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
      /**
       * ^:匹配输入字符串的开始位置
       * (^| );//匹配cookie开头或者空格(cookie键值对之间用分号空格隔开)===>cookie键值对的开始
       * name:cookie的名字
       * ([^;]*):匹配cookie中除了分号(;)以外的值
       * (;|$):匹配cookie中分号或者匹配cookie的结尾位置
       * 
       */
      if (arr = document.cookie.match(reg)) {
        return unescape(arr[2]);//unescape :是对escape的解码
      } else {
        return null;
      }
    }
    /**
     * 
     * @param {*} name //删除cookie的值
     */
    var delCookie = function (name) {
      setCookie(name'', -1);
    }

    /**
     * cookie设置基本语法:
     * cookieName=cookieValue ===> cookieName(cookie名字),cookieValue(cookie值)
     * expires=Sun, 13 Oct 2019 02:09:08 GMT ===> 设置cookie过期日期,若未定义,cookie会在会话结束时候过期,日期格式为new Date().toUTCString()
     * path=/demoDir ===> 设置文件的路径,没有定义默认为当前文档位置的路径
     * domain=127.0.0.1 ===> 设置指定域名,若未定义,默认问当前文档位置的路径或域名的部分
     * max-age=604800000 ===> 设置文档被查看后cookie过期时间,单位为秒
     * secure=true ===> cookie只会被https传输,即加密的https链接传输
     */
    // document.cookie = "cookieName=cookieValue;expires=Sun, 13 Oct 2019 02:09:08 GMT;path=/demoDir;domain=127.0.0.1;max-age=604800000;secure=true";
    未来的我会感谢现在努力的自己。
  • 相关阅读:
    Kotlin 学习 (一)
    Spring Boot 学习(一)
    三大特性之继承
    OC中的点语法
    getter和setter
    三大特性之封装
    匿名对象
    对象作为返回值
    对象作为参数的连续传递
    对象作为参数传递
  • 原文地址:https://www.cnblogs.com/cat-eol/p/11665172.html
Copyright © 2011-2022 走看看