JavaScript

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

缓存 小海豚博客管理员 2020-06-28 15:05:31.0 92 0条

首先需要稍微了解一下cookie的结构,简单地说:cookie是以键值对的形式保存的,即key=value的格式。各个cookie之间一般是以“;”分隔。

写cookies

  1. function setCookie(name,value)
  2. {
  3. var Days = 30;
  4. var exp = new Date();
  5. exp.setTime(exp.getTime() + Days*24*60*60*1000);
  6. document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
  7. }

读取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. }

使用示例

  1. setCookie("name","hayden");
  2. alert(getCookie("name"));

自定义过期时间

如果需要设定自定义过期时间,那么把上面的setCookie 函数换成下面两个函数就ok;

  1. //程序代码
  2. function setCookie(name,value,time)
  3. {
  4. var strsec = getsec(time);
  5. var exp = new Date();
  6. exp.setTime(exp.getTime() + strsec*1);
  7. document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
  8. }
  9. function getsec(str)
  10. {
  11. var str1=str.substring(1,str.length)*1;
  12. var str2=str.substring(0,1);
  13. if (str2=="s")
  14. {
  15. return str1*1000;
  16. }
  17. else if (str2=="h")
  18. {
  19. return str1*60*60*1000;
  20. }
  21. else if (str2=="d")
  22. {
  23. return str1*24*60*60*1000;
  24. }
  25. }

这是有设定过期时间的使用示例:

  1. //s20是代表20秒
  2. //h是指小时,如12小时则是:h12
  3. //d是天数,30天则:d30
  4. setCookie("name","hayden","s20");
暗锚,解决锚点偏移

文章评论

嘿,来试试登录吧!