jquery.cookie.js的介绍与使用方法
什么是cookie?
cookie就是页面用来保存信息,比如自动登录、记住用户名等等。
cookie的特点
- 同个网站中所有的页面共享一套cookie
- cookie有数量、大小限制
- cookie有过期时间jquery.cookie.js是一款轻量级的cookie插件,可以读取,写入和删除cookie。本文主要针对
jquery.cookie.js的用法进行详细的介绍。
jquery.cookie.js使用方法
Cookies
定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术;
下载与引入:jquery.cookie.js基于jquery;先引入jquery,再引入:jquery.cookie.js;
下载:http://plugins.jquery.com/cookie/
<scripttype="text/javascript"src="js/jquery.min.js"></script>
<scripttype="text/javascript"src="js/jquery.cookie.js"></script>
使用:
1.添加一个"会话cookie"
$.cookie('the_cookie','the_value');
这里没有指明cookie有效时间,所创建的cookie有效期默认到用户关闭浏览器为止,所以被称为“会话cookie(sessioncookie)”。
2.创建一个cookie并设置有效时间为7天
$.cookie('the_cookie','the_value',{expires:7});
这里指明了cookie有效时间,所创建的cookie被称为“持久cookie(persistentcookie)”。注意单位是:天;
3.创建一个cookie并设置cookie的有效路径
$.cookie('the_cookie','the_value',{expires:7,path:'/'});
在默认情况下,只有设置cookie的网页才能读取该cookie。如果想让一个页面读取另一个页面设置的cookie,必须设置cookie的路径。cookie的路径用于设置能够读取cookie的顶级目录。将这个路径设置为网站的根目录,可以让所有网页都能互相读取cookie(一般不要这样设置,防止出现冲突)。
4.读取cookie
$.cookie('the_cookie');
5.删除cookie
$.cookie('the_cookie',null); //通过传递null作为cookie的值即可
6.可选参数
$.cookie('the_cookie','the_value',{ expires:7, path:'/', domain:'jquery.com', secure:true })
expires:(Number|Date)有效期;设置一个整数时,单位是天;也可以设置一个日期对象作为Cookie的过期日期;
path:(String)创建该Cookie的页面路径;
domain:(String)创建该Cookie的页面域名;
secure:(Booblean)如果设为true,那么此Cookie的传输会要求一个安全协议,例如:HTTPS;
使用方法:
设置cookie:
$.cookie('the_cookie','the_value');
注:如果$.cookie没有第三个参数,那么当浏览器关闭时,该cookie将会自动删除。
设置一个有效期为7天的cookie:
$.cookie('the_cookie','the_value',{expires:7});
注:$.cookie第三个参数是一个对象,除了可以设置有效期(expires:7),还可以设置有效路径(path:'/')、有效域(domain:'jquery.com')及安全性(secure:true)。
读取cookie:
$.cookie('the_cookie');
注:如果没有该cookie,返回null。
删除cookie:
$.cookie('the_cookie',null);
我们只需要给需要删除的cookie设置为null,就可以删除该cookie。
最后附上源代码:
/** *Cookieplugin * *Copyright(c)2006KlausHartl(stilbuero.de) *DuallicensedundertheMITandGPLlicenses: *http://www.opensource.org/licenses/mit-license.php *http://www.gnu.org/licenses/gpl.html * */ /** *Createacookiewiththegivennameandvalueandotheroptionalparameters. * *@example$.cookie('the_cookie','the_value'); *@descSetthevalueofacookie. *@example$.cookie('the_cookie','the_value',{expires:7,path:'/',domain:'jquery.com',secure:true}); *@descCreateacookiewithallavailableoptions. *@example$.cookie('the_cookie','the_value'); *@descCreateasessioncookie. *@example$.cookie('the_cookie',null); *@descDeleteacookiebypassingnullasvalue.Keepinmindthatyouhavetousethesamepathanddomain *usedwhenthecookiewasset. * *@paramStringnameThenameofthecookie. *@paramStringvalueThevalueofthecookie. *@paramObjectoptionsAnobjectliteralcontainingkey/valuepairstoprovideoptionalcookieattributes. *@optionNumber|DateexpiresEitheranintegerspecifyingtheexpirationdatefromnowonindaysoraDateobject. *Ifanegativevalueisspecified(e.g.adateinthepast),thecookiewillbedeleted. *Ifsettonulloromitted,thecookiewillbeasessioncookieandwillnotberetained *whenthethebrowserexits. *@optionStringpathThevalueofthepathatributeofthecookie(default:pathofpagethatcreatedthecookie). *@optionStringdomainThevalueofthedomainattributeofthecookie(default:domainofpagethatcreatedthecookie). *@optionBooleansecureIftrue,thesecureattributeofthecookiewillbesetandthecookietransmissionwill *requireasecureprotocol(likeHTTPS). *@typeundefined * *@name$.cookie *@catPlugins/Cookie *@authorKlausHartl/klaus.hartl@stilbuero.de */ /** *Getthevalueofacookiewiththegivenname. * *@example$.cookie('the_cookie'); *@descGetthevalueofacookie. * *@paramStringnameThenameofthecookie. *@returnThevalueofthecookie. *@typeString * *@name$.cookie *@catPlugins/Cookie *@authorKlausHartl/klaus.hartl@stilbuero.de */ jQuery.cookie=function(name,value,options){ if(typeofvalue!='undefined'){//nameandvaluegiven,setcookie options=options||{}; if(value===null){ value=''; options=$.extend({},options);//cloneobjectsinceit'sunexpectedbehavioriftheexpiredpropertywerechanged options.expires=-1; } varexpires=''; if(options.expires&&(typeofoptions.expires=='number'||options.expires.toUTCString)){ vardate; if(typeofoptions.expires=='number'){ date=newDate(); date.setTime(date.getTime()+(options.expires*24*60*60*1000)); }else{ date=options.expires; } expires=';expires='+date.toUTCString();//useexpiresattribute,max-ageisnotsupportedbyIE } //NOTENeededtoparenthesizeoptions.pathandoptions.domain //inthefollowingexpressions,otherwisetheyevaluatetoundefined //inthepackedversionforsomereason... varpath=options.path?';path='+(options.path):''; vardomain=options.domain?';domain='+(options.domain):''; varsecure=options.secure?';secure':''; document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join(''); }else{//onlynamegiven,getcookie varcookieValue=null; if(document.cookie&&document.cookie!=''){ varcookies=document.cookie.split(';'); for(vari=0;i<cookies.length;i++){ varcookie=jQuery.trim(cookies[i]); //Doesthiscookiestringbeginwiththenamewewant? if(cookie.substring(0,name.length+1)==(name+'=')){ cookieValue=decodeURIComponent(cookie.substring(name.length+1)); break; } } } returncookieValue; } };
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。