美文网首页
JS如何操作cookie

JS如何操作cookie

作者: 年少清狂 | 来源:发表于2017-12-02 13:17 被阅读0次

在学习JS如何操作cookie之前,先得了解下cookie是什么。

HTTP Cookie(也叫Web cookie或者浏览器Cookie)是服务器发送到用户浏览器并保存在浏览器上的一块数据,它会在浏览器下一次发起请求时被携带并发送到服务器上。比较典型的,可以它用来确定两次请求是否来自于同一个浏览器,从而能够确认和保持用户的登录状态。Cookie使得基于无状态的HTTP协议记录稳定的状态信息成为了可能。

cookies

接下来,就是JS如何操作浏览器cookie的问题了,包括设置、读取、删除。

设置Cookie

修改cookie的value值,也可以用setCookie这个函数。

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

上面的代码默认cookie的过期时间是30天,如果需要自定义过期时间,就需要用到下面的两个函数。

function setCookie(name, value, time){
  var strsec = getsec(time);
  var exp = new Date();
  exp.setTime(exp.getTime() + strsec*1);
  document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
}

function getsec(str){
  var str1 = str.substring(1,str.length)*1;
  var str2 = str.substring(0,1);
  if (str2 == "s"){  //"s"指的是秒,s20则是20秒
    return str1*1000;
  } else if (str2 == "h") {  //"h"指的是小时,h12则是12个小时
    return str1*60*60*1000;
  } else if (str2 == "d") {  //"d"指的是天数,d30则是30天
    return str1*24*60*60*1000;
  }
}

读取Cookie

function getCookie(name){
  var arr,reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  if(arr = document.cookie.match(reg))
    return unescape(arr[2]);
  else
    return null;
}

删除cookie

function delCookie(name){
  var exp = new Date();
  exp.setTime(exp.getTime() - 1);
  var cval = getCookie(name);
  if(cval != null)
    document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}

相关链接:HTTP Cookies

相关文章

网友评论

      本文标题:JS如何操作cookie

      本文链接:https://www.haomeiwen.com/subject/nhrnbxtx.html