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;
}
};
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。