首页 > 代码库 > JS cookie的使用
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.length14 return unescape(document.cookie.substring(c_start,c_end))15 } 16 }17 return ""18 }19 //这个里面如果cookie的名字设置与之前存在的名字一样,则会覆盖之前的cookie,如果过期时间设置的是现在时间之前,则就是删除cookie20 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>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。