zoukankan      html  css  js  c++  java
  • cookie封装函数与使用方法(转)

    函数封装:

    var Cookie = function(name, value, options) {
        // 如果第二个参数存在
        if (typeof value != 'undefined') {
          options = options || {};
          if (value === null) {
            // 设置失效时间
            options.expires = -1;
          }
          var expires = '';
          // 如果存在事件参数项,并且类型为 number,或者具体的时间,那么分别设置事件
          if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
              date = new Date();
              date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
              date = options.expires;
            }
            expires = '; expires=' + date.toUTCString();
          }
          var path = options.path ? '; path=' + options.path : '', // 设置路径
            domain = options.domain ? '; domain=' + options.domain : '', // 设置域 
            secure = options.secure ? '; secure' : ''; // 设置安全措施,为 true 则直接设置,否则为空
     
          // 把所有字符串信息都存入数组,然后调用 join() 方法转换为字符串,并写入 Cookie 信息
          document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join(''); 
        } else { // 如果第二个参数不存在
          var CookieValue = null;
          if (document.cookie && document.cookie != '') {
            var Cookie = document.cookie.split(';');
            for (var i = 0; i < Cookies.length; i++) {
              var Cookie = (Cookie[i] || "").replace( /^s+|s+$/g, "");
              if (Cookie.substring(0, name.length + 1) == (name + '=')) {
                CookieValue = decodeURIComponent(Cookie.substring(name.length + 1));
                break;
              }
            }
          }
          return CookieValue;
        }
      };
    

      写入cookie信息:

    // 简单写入一条 Cookie 信息
    cookie("user", "baidu");
    // 写入一条 Cookie 信息,并且设置更多选项
    cookie("user", "baidu", {
      expires: 10, // 有效期为 10 天
      path: "/", // 整个站点有效
      domain: "www.baidu.com", // 有效域名
      secure: true // 加密数据传输
    });
    

      读取:

    cookie("user");
    

      删除:

    cookie("user", null);
    

      

  • 相关阅读:
    BZOJ2705[SDOi2012]Longge的问题
    Ubuntu 18.04 打不开1.1.0版本网易云音乐的解决方法汇总
    BZOJ3295[CQOI2011]动态逆序对(CDQ分治)
    hdu-4638-Group(树状数组)
    hdu-3333-Turing Tree(树状数组)
    UVA-11983-Weird Advertisement(线段树+扫描线)[求矩形覆盖K次以上的面积]
    ZOJ-3597-Hit the Target!(线段树+扫描线)
    POJ-1177-Picture(线段树+扫描线+离散化)[矩形周长并]
    POJ-1151-Atlantis(线段树+扫描线+离散化)[矩形面积并]
    LightOJ 1135(线段树)
  • 原文地址:https://www.cnblogs.com/kaixin3946/p/6042014.html
Copyright © 2011-2022 走看看