下一篇 ?? 上一篇提示:鼠标放在图片上用鼠标中键即可控制图片大小

文章标题:用JavaScript操作cookie

作者: ???时间:2009-07-16??? 翻译网站:??? 点击:34319 ???本文共1篇文章
发表评论 | 查看评论 | 加入收藏 | Email给朋友 | 打印本文 | 字体:[ ]

写入和读取Cookie是一种常见的功能,可惜JavaScript对此的直接支持并不算完善,下面是几个操作Cookie的函数,用起来还是蛮方便的。 php学习之家http://www.444p.com

JavaScript代码
  1. //?utility?function?to?retrieve?an?expiration?date?in?proper ??
  2. ??
  3. //?format;?pass?three?integer?parameters?for?the?number?of?days,?hours, ??
  4. ??
  5. //?and?minutes?from?now?you?want?the?cookie?to?expire?(or?negative ??
  6. ??
  7. //?values?for?a?past?date);?all?three?parameters?are?required, ??
  8. ??
  9. //?so?use?zeros?where?appropriate ??
  10. ??
  11. function?getExpDate(days,?hours,?minutes)?{ ??
  12. ??
  13. ????var?expDate?=?new?Date(?); ??
  14. ??
  15. ????if?(typeof?days?==?"number"?&&?typeof?hours?==?"number"?&&? ??
  16. ??
  17. ????????typeof?hours?==?"number")?{ ??
  18. ??
  19. ????????expDate.setDate(expDate.getDate(?)?+?parseInt(days)); ??
  20. ??
  21. ????????expDate.setHours(expDate.getHours(?)?+?parseInt(hours)); ??
  22. ??
  23. ????????expDate.setMinutes(expDate.getMinutes(?)?+?parseInt(minutes)); ??
  24. ??
  25. ????????return?expDate.toGMTString(?); ??
  26. ??
  27. ????} ??
  28. ??
  29. } ??
  30. ??
  31. ??? ??
  32. ??
  33. //?utility?function?called?by?getCookie(?) ??
  34. ??
  35. function?getCookieVal(offset)?{ ??
  36. ??
  37. ????var?endstr?=?document.cookie.indexOf?(";",?offset); ??
  38. ??
  39. ????if?(endstr?==?-1)?{ ??
  40. ??
  41. ????????endstr?=?document.cookie.length; ??
  42. ??
  43. ????} ??
  44. ??
  45. ????return?unescape(document.cookie.substring(offset,?endstr)); ??
  46. ??
  47. } ??
  48. ??
  49. ??? ??
  50. ??
  51. //?primary?function?to?retrieve?cookie?by?name ??
  52. ??
  53. function?getCookie(name)?{ ??
  54. ??
  55. ????var?arg?=?name?+?"="; ??
  56. ??
  57. ????var?alen?=?arg.length; ??
  58. ??
  59. ????var?clen?=?document.cookie.length; ??
  60. ??
  61. ????var?i?=?0; ??
  62. ??
  63. ????while?(i?
  64. ??
  65. ????????var?j?=?i?+?alen; ??
  66. ??
  67. ????????if?(document.cookie.substring(i,?j)?==?arg)?{ ??
  68. ??
  69. ????????????return?getCookieVal(j); ??
  70. ??
  71. ????????} ??
  72. ??
  73. ????????i?=?document.cookie.indexOf("?",?i)?+?1; ??
  74. ??
  75. ????????if?(i?==?0)?break;? ??
  76. ??
  77. ????} ??
  78. ??
  79. ????return?""; ??
  80. ??
  81. } ??
  82. ??
  83. ??? ??
  84. ??
  85. //?store?cookie?value?with?optional?details?as?needed ??
  86. ??
  87. function?setCookie(name,?value,?expires,?path,?domain,?secure)?{ ??
  88. ??
  89. ????document.cookie?=?name?+?"="?+?escape?(value)?+ ??
  90. ??
  91. ????????((expires)???";?expires="?+?expires?:?"")?+ ??
  92. ??
  93. ????????((path)???";?path="?+?path?:?"")?+ ??
  94. ??
  95. ????????((domain)???";?domain="?+?domain?:?"")?+ ??
  96. ??
  97. ????????((secure)???";?secure"?:?""); ??
  98. ??
  99. } ??
  100. ??
  101. ??? ??
  102. ??
  103. //?remove?the?cookie?by?setting?ancient?expiration?date ??
  104. ??
  105. function?deleteCookie(name,path,domain)?{ ??
  106. ??
  107. ????if?(getCookie(name))?{ ??
  108. ??
  109. ????????document.cookie?=?name?+?"="?+ ??
  110. ??
  111. ????????????((path)???";?path="?+?path?:?"")?+ ??
  112. ??
  113. ????????????((domain)???";?domain="?+?domain?:?"")?+ ??
  114. ??
  115. ????????????";?expires=Thu,?01-Jan-70?00:00:01?GMT"; ??
  116. ??
  117. ????} ??
  118. ??
  119. } ??
  120. ??

www.444p.com
将上面的几个js命名为cookie.js,下面演示其基本用法
? www.444p.com

XML/HTML代码
  1. <script?type="text/javascript"?src="cookie.js">script>??
  2. ??
  3. ??
  4. <script?type="text/javascript">??
  5. ??
  6. ???function?foo() ??
  7. ??
  8. ???{ ??
  9. ??
  10. ?????????var?name?=?document.getElementById("name").value; ??
  11. ??
  12. ?????????if(name) ??
  13. ??
  14. ?????????{ ??
  15. ??
  16. ??????????????setCookie("name",name); ??
  17. ??
  18. ?????????} ??
  19. ??
  20. ?????????document.getElementById("show").innerHTML+=("NEWEST?NAME?:"+?getCookie("name")?+?"<br>"); ??
  21. ??
  22. ???} ??
  23. ??
  24. script>??
  25. ??
  26. Chapter?1.9?example ??
  27. ??
  28. <br>??
  29. ??
  30. <input?type="text"?id="name"?size="20"?/>??
  31. ??
  32. <input?type="button"?value="setCookie"?onclick="foo()"?/>??
  33. ??
  34. <div?id="show">div>??
责任编辑:semirock
发表评论
密码: (游客不需要密码)
记住我【Alt+S 或 Ctrl+Enter 快速提交】