JS cookie的使用

cookie是浏览器提供的一种机制,它将document 对象的cookie属性提供给JavaScript。可以由JavaScript对其进行控制,而并不是JavaScript本身的性质。cookie是存于用户硬盘的一个文件,这个文件通常对应于一个域名,当浏览器再次访问这个域名时,便使这个cookie可用。因此,cookie可以跨越一个域名下的多个网页,但不能跨越多个域名使用。

cookie是一种储存在本地的文件,用于下次访问网页的时候自动调用,直接读取客户端信息,避免重复执行,影响效率。

但是cookie也是有缺陷的,客户端如果浏览器禁用了cookie,这样就无法写入读取了。

每个cookie都是一个名/值对,把字符串赋值给document.cookie. 

在cookie 的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。在cookie的名中做到这点很容易,但要保存的值是不确定的。如何来存储这些值呢?方法是用escape()函数进行编码,它能将一些特殊符号使用十六进制表示,例如空格将会编码为“20%”,从而可以存储于cookie值中,而且使用此 种方案还可以避免中文乱码的出现。

document.cookie="str="+escape("I am rain");   //  escape()编码,读取的时候也需要解码 unescape(document.cookie);

下面是设置和获取cookie的函数。

 1 <html>
 2 <head>
 3 <script type="text/javascript">
 4 function getCookie(c_name)      //获取cookie  
 5 {
 6 if (document.cookie.length>0)    //判断是否存在cookie
 7   {
 8   c_start=document.cookie.indexOf(c_name + "=")
 9   if (c_start!=-1)
10     { 
11     c_start=c_start + c_name.length+1 
12     c_end=document.cookie.indexOf(";",c_start)
13     if (c_end==-1) c_end=document.cookie.length
14     return unescape(document.cookie.substring(c_start,c_end))
15     } 
16   }
17 return ""
18 }
19 //这个里面如果cookie的名字设置与之前存在的名字一样,则会覆盖之前的cookie,如果过期时间设置的是现在时间之前,则就是删除cookie
20 function setCookie(c_name,value,expiredays)  //设置cookie, 参数是cookie 的名字,cookie的值 ,cookie的过期时间
21 {
22 var exdate=new Date()
23 exdate.setDate(exdate.getDate()+expiredays)
24 document.cookie=c_name+ "=" +escape(value)+
25 ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
26 }
27 
28 </script>
29 </head>
30 
31 <body>
32 </body>
33 </html>
原文地址:https://www.cnblogs.com/joe2014/p/3825211.html