下面的插件主要是做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;
}
};
本文介绍了一个用于cookie操作的插件,支持基本的设置、获取和删除功能,并提供了一个简易的API文档,包括如何使用插件的基本命令。
683

被折叠的 条评论
为什么被折叠?



