该文章来源于网页整理.

1.
";expires="之前的字符串你可以随便写,但是";expires="必须遵循这个写法,尤其是这个分号不能少,不然浏览器是认不出你的expires(过期时间),而把它当成cookie内容的一部分。

设置标识符的时候,我建议尽量不要用分号当做分隔符。“吞掉了”,造成这个现象的原因是,浏览器在保存cookie的时候,在读到分号之后,就认为cookie的内容结束了。


要在一条cookie中设置多个值,就需要像代码2这样用标示符(不要分号)进行分割。然后在读取的时候,也根据标示符进行逐个读取。


设置多个cookie,这个时候,你再去解析cookie的时候,就要用分号作为分隔符了。

我们尽量不要直接在Cookie中保存一些重要的或者敏感的内容。如果我们确实需要使用Cookie保存一些重要的内容,但又不希望被他人看懂,我们可以使用一些加密的方法来保护这些内容。

chrome不支持本地cookie,而需要用online-cookie

代码来自w3school的js操作cookie教程,经本人整理和个性化。

<!--记住密码-->
<html>
<head>
<scripttype="text/javascript">

functiongetCookie(c_name)//根据分隔符每个变量的值
{
if(document.cookie.length>0){
c_start=document.cookie.indexOf(c_name+"=")
if(c_start!=-1){
c_start=c_start+c_name.length+1;
c_end=document.cookie.indexOf("^",c_start);
if(c_end==-1)
c_end=document.cookie.length;
returnunescape(document.cookie.substring(c_start,c_end));
}
}
return"";
}

functionsetCookie(c_name,n_value,p_name,p_value,expiredays)//设置cookie
{
varexdate=newDate();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+"="+escape(n_value)+"^"+p_name+"="+escape(p_value)+((expiredays==null)?"":"^;expires="+exdate.toGMTString());
console.log(document.cookie)
}

functioncheckCookie()//检测cookie是否存在,如果存在则直接读取,否则创建新的cookie
{
alert(document.cookie)
varusername=getCookie('username');
varpassword=getCookie('password');
if(username!=null&&username!=""&&password!=null&&password!=""){
alert('Yourname:'+username+'\n'+'Yourpassword:'+password);
}
else{
username=prompt('Pleaseenteryourname:',"");
password=prompt('Pleaseenteryourname:',"");
if(username!=null&&username!=""&&password!=null&&password!="")
{
setCookie('username',username,'password',password,365);
}
}
alert(document.cookie)
}

functioncleanCookie(c_name,p_name){//使cookie过期
document.cookie=c_name+"="+";"+p_name+"="+";expires=Thu,01-Jan-7000:00:01GMT";
}
</script>
</head>

<bodyonLoad="checkCookie()">
</body>
</html>


2.

jquery.cookie使用方法一个轻量级的cookie插件,可以读取、写入、删除cookie。
jquery.cookie.js的配置首先包含jQuery的库文件,在后面包含jquery.cookie.js的库文件。

<scripttype="text/javascript"src="js/jquery-1.6.2.min.js"></script>
<scripttype="text/javascript"src="js/jquery.cookie.js"></script>


使用方法新添加一个会话cookie:
$.cookie('the_cookie','the_value');
注:当没有指明cookie有效时间时,所创建的cookie有效期默认到用户关闭浏览器为止,所以被称为“会话cookie(sessioncookie)”。

创建一个cookie并设置有效时间为7天:
$.cookie('the_cookie','the_value',{expires:7});
注:当指明了cookie有效时间时,所创建的cookie被称为“持久cookie(persistentcookie)。”

创建一个cookie并设置cookie的有效路径:
$.cookie('the_cookie','the_value',{expires:7,path:'/'});
注:在默认情况下,只有设置cookie的网页才能读取该cookie。如果想让一个页面读取另一个页面设置的cookie,必须设置cookie的路径。cookie的路径用于设置能够读取cookie的顶级目录。将这个路径设置为网站的根目录,可以让所有网页都能互相读取cookie(一般不要这样设置,防止出现冲突)。


读取cookie:
$.cookie('the_cookie');
//cookie存在=>'the_value'$.cookie('not_existing');
//cookie不存在=>null删除cookie,通过传递null作为cookie的值即可:$.cookie('the_cookie',null);

部分参数解释:
domain:'example.com'默认值:创建cookie的网页所拥有的域名。
secure:true默认值:false。
如果为true,cookie的传输需要使用安全协议(HTTPS)。raw:true默认值:false。默认情况下,读取和写入cookie的时候自动进行编码和解码(使用encodeURIComponent编码,decodeURIComponent解码)。要关闭这个功能设置raw:true即可。