耀极客论坛

 找回密码
 立即注册
查看: 366|回复: 0

JS设置cookie、读取cookie、删除cookie

[复制链接]

193

主题

176

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2022-5-7 00:26:09 | 显示全部楼层 |阅读模式
  Js操作Cookie总结(设置,读取,删除),工作中经常会用到的哦!下面是详细代码,如有错误,请留言指正!
  JavaScript是运行在客户端的脚本,因此一般是不能够设置Session的,因为Session是运行在服务器端的。
  而cookie是运行在客户端的,所以可以用JS来设置cookie.
  假设有这样一种情况,在某个用例流程中,由A页面跳至B页面,若在A页面中采用JS用变量temp保存了某一变量的值,在B页面的时候,同样需要使用JS来引用temp的变量值,对于JS中的全局变量或者静态变量的生命周期是有限的,当发生页面跳转或者页面关闭的时候,这些变量的值会重新载入,即没有达到保存的效果。解决这个问题的最好的方案是采用cookie来保存该变量的值,那么如何来设置和读取cookie呢?
  首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间一般是以“;”分隔。
  JS设置cookie:
  假设在A页面中要保存变量username的值("jack")到cookie中,key值为name,则相应的JS代码为:
  1. document.cookie="name="+username;
复制代码
  JS读取cookie:
  假设cookie中存储的内容为:name=jack;password=123
  则在B页面中获取变量username的值的JS代码如下:
  1. var username=document.cookie.split(";")[0].split("=")[1];
  2. //JS操作cookies方法!
  3. //写cookies
  4. function setCookie(name,value)
  5. {
  6. var Days = 30;
  7. var exp = new Date();
  8. exp.setTime(exp.getTime() + Days*24*60*60*1000);
  9. document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
  10. }
复制代码
  读取cookies
  1. function getCookie(name)
  2. {
  3. var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
  4. if(arr=document.cookie.match(reg))
  5. return unescape(arr[2]);
  6. else
  7. return null;
  8. }
复制代码
  删除cookies
  1. function delCookie(name)
  2. {
  3. var exp = new Date();
  4. exp.setTime(exp.getTime() - 1);
  5. var cval=getCookie(name);
  6. if(cval!=null)
  7. document.cookie= name + "="+cval+";expires="+exp.toGMTString();
  8. }
  9. //使用示例
  10. setCookie("name","hayden");
  11. alert(getCookie("name"));
  12. //如果需要设定自定义过期时间
  13. //那么把上面的setCookie 函数换成下面两个函数就ok;
  14. //程序代码
  15. function setCookie(name,value,time)
  16. {
  17. var strsec = getsec(time);
  18. var exp = new Date();
  19. exp.setTime(exp.getTime() + strsec*1);
  20. document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
  21. }
  22. function getsec(str)
  23. {
  24. alert(str);
  25. var str1=str.substring(1,str.length)*1;
  26. var str2=str.substring(0,1);
  27. if (str2=="s")
  28. {
  29. return str1*1000;
  30. }
  31. else if (str2=="h")
  32. {
  33. return str1*60*60*1000;
  34. }
  35. else if (str2=="d")
  36. {
  37. return str1*24*60*60*1000;
  38. }
  39. }
  40. //这是有设定过期时间的使用示例:
  41. //s20是代表20秒
  42. //h是指小时,如12小时则是:h12
  43. //d是天数,30天则:d30
  44. setCookie("name","hayden","s20");
复制代码
  以上所述就是本文的全部内容了,希望大家能够喜欢。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|耀极客论坛 ( 粤ICP备2022052845号-2 )|网站地图

GMT+8, 2022-11-28 19:41 , Processed in 0.075790 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表