0

这是代码:

!function(e) {
  var n = !1;
  if ("function" == typeof define && define.amd && (define(e), n = !0), "object" == typeof exports && (module.exports = e(), n = !0), !n) {
    var o = window.Cookies,
      t = window.Cookies = e();
    t.noConflict = function() {
      return window.Cookies = o,
      t
    }
  }
}(function() {
  function e() {
    for (var e = 0, n = {}; e < arguments.length; e++) {
      var o = arguments[e];
      for (var t in o) 
        n[t] = o[t]
    }
    return n
  }
  function n(o) {
    function t(n, r, i) {
      var c;
      if ("undefined" != typeof document) {
        if (arguments.length > 1) {
          if (i = e({
            path: "/"
          }, t.defaults, i), "number" == typeof i.expires) {
            var a = new Date;
            a.setMilliseconds(a.getMilliseconds() + 864e5 * i.expires),
            i.expires = a
          }
          i.expires = i.expires
            ? i.expires.toUTCString()
            : "";
          try {
            c = JSON.stringify(r),
            /^[\{\[]/.test(c) && (r = c)
          } catch (e) {}
          r = o.write
            ? o.write(r, n)
            : encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent),
          n = encodeURIComponent(String(n)),
          n = n.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent),
          n = n.replace(/[\(\)]/g, escape);
          var f = "";
          for (var s in i) 
            i[s] && (f += "; " + s, i[s] !== !0 && (f += "=" + i[s]));
          return document.cookie = n + "=" + r + f
        }
        n || (c = {});
        for (
          var p = document.cookie
          ? document.cookie.split("; ")
          : [],
        d = 0; d < p.length; d++) {
          var u = p[d].split("="),
            l = u.slice(1).join("=");
          '"' === l.charAt(0) && (l = l.slice(1, -1));
          try {
            var g = u[0].replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);
            if (
              l = o.read
              ? o.read(l, g)
              : o(l, g) || l.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent),
            this.json) 
              try {
                l = JSON.parse(l)
              } catch (e) {}
            if (n === g) {
              c = l;
              break
            }
            n || (c[g] = l)
          } catch (e) {}
        }
        return c
      }
    }
    return t.set = t,
    t.get = function(e) {
      return t.call(t, e)
    },
    t.getJSON = function() {
      return t.apply({
        json: !0
      }, [].slice.call(arguments))
    },
    t.defaults = {},
    t.remove = function(n, o) {
      t(n, "", e(o, {expires: -1}))
    },
    t.withConverter = n,
    t
  }
  return n(function() {})
});

4

1 回答 1

0

您的代码片段将 Cookie 属性添加到全局窗口对象。该属性有一个添加 Cookie 的方法集,该方法将 cookie 名称、内容和属性作为参数。在第三个参数中,您可以定义一个expires属性,从而以毫秒为单位指定 cookie 的持续时间。这是一个例子:

!function(e) {
  var n = !1;
  if ("function" == typeof define && define.amd && (define(e), n = !0), "object" == typeof exports && (module.exports = e(), n = !0), !n) {
    var o = window.Cookies,
      t = window.Cookies = e();
    t.noConflict = function() {
      return window.Cookies = o,
      t
    }
  }
}(function() {
  function e() {
    for (var e = 0, n = {}; e < arguments.length; e++) {
      var o = arguments[e];
      for (var t in o) 
        n[t] = o[t]
    }
    return n
  }
  function n(o) {
    function t(n, r, i) {
      var c;
      if ("undefined" != typeof document) {
        if (arguments.length > 1) {
          if (i = e({
            path: "/"
          }, t.defaults, i), "number" == typeof i.expires) {
            var a = new Date;
            a.setMilliseconds(a.getMilliseconds() + 864e5 * i.expires),
            i.expires = a
          }
          i.expires = i.expires
            ? i.expires.toUTCString()
            : "";
          try {
            c = JSON.stringify(r),
            /^[\{\[]/.test(c) && (r = c)
          } catch (e) {}
          r = o.write
            ? o.write(r, n)
            : encodeURIComponent(String(r)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent),
          n = encodeURIComponent(String(n)),
          n = n.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent),
          n = n.replace(/[\(\)]/g, escape);
          var f = "";
          for (var s in i) 
            i[s] && (f += "; " + s, i[s] !== !0 && (f += "=" + i[s]));
          return document.cookie = n + "=" + r + f
        }
        n || (c = {});
        for (
          var p = document.cookie
          ? document.cookie.split("; ")
          : [],
        d = 0; d < p.length; d++) {
          var u = p[d].split("="),
            l = u.slice(1).join("=");
          '"' === l.charAt(0) && (l = l.slice(1, -1));
          try {
            var g = u[0].replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);
            if (
              l = o.read
              ? o.read(l, g)
              : o(l, g) || l.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent),
            this.json) 
              try {
                l = JSON.parse(l)
              } catch (e) {}
            if (n === g) {
              c = l;
              break
            }
            n || (c[g] = l)
          } catch (e) {}
        }
        return c
      }
    }
    return t.set = t,
    t.get = function(e) {
      return t.call(t, e)
    },
    t.getJSON = function() {
      return t.apply({
        json: !0
      }, [].slice.call(arguments))
    },
    t.defaults = {},
    t.remove = function(n, o) {
      t(n, "", e(o, {expires: -1}))
    },
    t.withConverter = n,
    t
  }
  return n(function() {})
});

// Use the set method, e.g.

window.Cookies.set('CookieName', 'CookieContent', { expires: 1000 * 60 * 60 })

于 2019-11-16T13:10:30.517 回答