下面的插件主要是做cookie相关的操作,支持参数配置,功能上包含一般的获取,设置,移除cookie。后期考虑是否更多地支持一下默认配置上的优化---比如cookie保存的一个星期|一个月|半年|一年----这样的类似客户端软件一些常见的下拉框设置。
注意:Date相关的api可以参考http://zhangyaochun.iteye.com/blog/1433232
/* phoenix lib的一个插件cookie @author zhangyaochun @blog http://zhangyaochun.iteye.com/ @baidu Hi zhangyaochunl @edition 1.0.1 beta @info how to use 1. setCookie -- phoenix.cookie('user-name', 'zhangyaochun', {expires:30}); 2. getCookie -- phoenix.cookie('user-name') 3. removeCookie --phoenix.cookie('user-name', '', { expires: -1 }) or phoenix.cookie('user-name',null); @replay on jQuery.trim ----if you don not use jQuery as you base-lib,just fix a self-function for trim */ var phoenix =phoenix || {version:'1.0.1'}; phoenix.cookie = function(name,value,options){ if(typeof value != 'undefined'){ //set cookie options = options || {}; //如果value为null if(value === null){ value = ''; options.expires = -1; } var expires = ''; //判断options是否定义expires而且值为数值或者是Date对象 if(options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)){ var date; if(typeof options.expires == 'number'){ date = new Date(); //这边的expires是按天算的---转换为毫秒 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:''; var domain = options.domain ? ';domain='+options.domain:''; var secure = options.secure ? ';secure' : ''; document.cookie = [name,'=',encodeURIComponent(value),expires,path,domain,secure].join(''); }else{ //get cookie var cookieValue = null; if(document.cookie && document.cookie != ''){ var cookies = document.cookie.split(';'); for(var i=0;i<cookies.length;i++){ var cookie = jQuery.trim(cookies[i]); //判断是否匹配 if(cookie.substring(0,name.length+1) == (name+'=')){ cookieValue = decodeURIComponent(cookie.substring(name.length+1)); break; } } } return cookieValue; } };