jquery.cookie.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /*!
  2. * jQuery Cookie Plugin v1.4.1
  3. * https://github.com/carhartl/jquery-cookie
  4. *
  5. * Copyright 2006, 2014 Klaus Hartl
  6. * Released under the MIT license
  7. */(function(factory){if(typeof define==='function'&&define.amd){define(['jquery'],factory);}else if(typeof exports==='object'){module.exports=factory(require('jquery'));}else{factory(jQuery);}}(function($){var pluses=/\+/g;function encode(s){return config.raw?s:encodeURIComponent(s);}
  8. function decode(s){return config.raw?s:decodeURIComponent(s);}
  9. function stringifyCookieValue(value){return encode(config.json?JSON.stringify(value):String(value));}
  10. function parseCookieValue(s){if(s.indexOf('"')===0){s=s.slice(1,-1).replace(/\\"/g,'"').replace(/\\\\/g,'\\');}
  11. try{s=decodeURIComponent(s.replace(pluses,' '));return config.json?JSON.parse(s):s;}catch(e){}}
  12. function read(s,converter){var value=config.raw?s:parseCookieValue(s);return $.isFunction(converter)?converter(value):value;}
  13. var config=$.cookie=function(key,value,options){if(arguments.length>1&&!$.isFunction(value)){options=$.extend({},config.defaults,options);if(typeof options.expires==='number'){var days=options.expires,t=options.expires=new Date();t.setMilliseconds(t.getMilliseconds()+days*864e+5);}
  14. return(document.cookie=[encode(key),'=',stringifyCookieValue(value),options.expires?'; expires='+options.expires.toUTCString():'',options.path?'; path='+options.path:'',options.domain?'; domain='+options.domain:'',options.secure?'; secure':''].join(''));}
  15. var result=key?undefined:{},cookies=document.cookie?document.cookie.split('; '):[],i=0,l=cookies.length;for(;i<l;i++){var parts=cookies[i].split('='),name=decode(parts.shift()),cookie=parts.join('=');if(key===name){result=read(cookie,value);break;}
  16. if(!key&&(cookie=read(cookie))!==undefined){result[name]=cookie;}}
  17. return result;};config.defaults={};$.removeCookie=function(key,options){$.cookie(key,'',$.extend({},options,{expires:-1}));return!$.cookie(key);};}));
  18. function setCookie(days, name, value) {
  19. var exp = new Date();
  20. exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000);
  21. document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + "; path=/";
  22. }
  23. function getCookie(name) {
  24. var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  25. if (arr = document.cookie.match(reg)) return unescape(arr[2]);
  26. else return null;
  27. }
  28. function delCookie(name) {
  29. var exp = new Date();
  30. exp.setTime(exp.getTime() - 1);
  31. var cval = getCookie(name);
  32. if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + "; path=/";
  33. }