Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1663072
  • 博文数量: 695
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4027
  • 用 户 组: 普通用户
  • 注册时间: 2013-11-20 21:22
文章分类

全部博文(695)

文章存档

2018年(18)

2017年(74)

2016年(170)

2015年(102)

2014年(276)

2013年(55)

分类: JavaScript

2015-10-28 10:48:37


点击(此处)折叠或打开

  1. <html>
  2. <head>
  3. <script type="text/javascript">
  4. function getCookie(c_name)
  5. {
  6. if (document.cookie.length>0)
  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. function setCookie(c_name,value,expiredays)
  20. {
  21. var exdate=new Date()
  22. exdate.setDate(exdate.getDate()+expiredays)
  23. document.cookie=c_name+ "=" +escape(value)+
  24. ((expiredays==null) ? "" : "; expires="+exdate.toGMTString())
  25. }

  26. function checkCookie()
  27. {
  28. username=getCookie('username')
  29. if (username!=null && username!="")
  30.   {alert('Welcome again '+username+'!')}
  31. else
  32.   {
  33.   username=prompt('Please enter your name:',"")
  34.   if (username!=null && username!="")
  35.     {
  36.     setCookie('username',username,365)
  37.     }
  38.   }
  39. }
  40. </script>
  41. </head>
  42. <body onLoad="checkCookie()">
  43. </body>
  44. </html>
对其中的getCookie函数进行相应的解释
解释:
1.  cookie保存在系统中的时候是以“cookie名1=cookie值;cookie名2=cookie值”这样的方式来保存的。
2.  document.cookie是返回包含所有cookie的字符串。
3.  document.cookie.indexOf(c_name + "=")是取得这个cookie名在整个cookie中的位置。【加"="号:取cookie名加上等于号的位置,比方整个cookie是"user=tony;passwd=user123",这时候查找名为user的cookie的值的时候,是查找"user="的位置,如果不要等于号,就会找到其他位置的"user",比如后面密码里面也有user字符但并不是cookie名所在的位置。因为cookie中cookie名都是唯一的,所以加上等于号就不会出错了。
4.  c_start=c_start + c_name.length+1是用先前取得的位置加上cookie名的长度再加1,就是把位置确定在这个cookie名的"="符号的后面。
5.  c_end=document.cookie.indexOf(";",c_start)是从上一步的位置开始查找,直到";"的位置。
6.  document.cookie.substring(c_start,c_end))就是取该cookie名的等号后面到分号前面的字符串,即对应的cookie值

阅读(767) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~