js读写(删除)Cookie实例详解

复制代码 代码如下:

  //JS操作cookies方法!

  //写cookies

  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();

  }

  //读取cookies

  function getCookie(name)

  {

  var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");

  if(arr=document.cookie.match(reg)) return unescape(arr[2]);

  else return null;

  }

  //删除cookies

  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();

  }

  //使用示例

  setCookie("name","hayden");

  alert(getCookie("name"));

  //如果需要设定自定义过期时间

  //那么把上面的setCookie 函数换成下面两个函数就ok;

  //程序代码

  function setCookie2(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){

  alert(str);

  var str1=str.substring(1,str.length)*1;

  var str2=str.substring(0,1);

  if (str2=="s"){

  return str1*1000;

  }else if (str2=="h"){

  return str1*60*60*1000;

  }else if (str2=="d"){

  return str1*24*60*60*1000;

  }

  }

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

  //s20是代表20秒

  //h是指小时,如12小时则是:h12

  //d是天数,30天则:d30

  //暂时只写了这三种

  setCookie2("name2","hayden2","s20");

  alert(getCookie("name2"));

  以下是几个比较常见的好用的函数:

  

复制代码 代码如下:

  function GetCookieVal(offset)

  //获得Cookie解码后的值

  {

  var endstr = document.cookie.indexOf (";", offset);

  if (endstr == -1)

  endstr = document.cookie.length;

  return unescape(document.cookie.substring(offset, endstr));

  }

  function SetCookie(name, value)

  //设定Cookie值

  {

  var expdate = new Date();

  var argv = SetCookie.arguments;

  var argc = SetCookie.arguments.length;

  var expires = (argc > 2) ? argv[2] : null;

  var path = (argc > 3) ? argv[3] : null;

  var domain = (argc > 4) ? argv[4] : null;

  var secure = (argc > 5) ? argv[5] : false;

  if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 1000 ));

  document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expdate.toGMTString()))

  +((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))

  +((secure == true) ? "; secure" : "");

  }

  function DelCookie(name)

  //删除Cookie

  {

  var exp = new Date();

  exp.setTime (exp.getTime() - 1);

  var cval = GetCookie (name);

  document.cookie = name + "=" + cval + "; expires="+ exp.toGMTString();

  }

  function GetCookie(name)

  //获得Cookie的原始值

  {

  var arg = name + "=";

  var alen = arg.length;

  var clen = document.cookie.length;

  var i = 0;

  while (i < clen)

  {

  var j = i + alen;

  if (document.cookie.substring(i, j) == arg)

  return GetCookieVal (j);

  i = document.cookie.indexOf(" ", i) + 1;

  if (i == 0) break;

  }

  return null;

  }

  //测试

  SetCookie("sunshine","1986");

  alert(GetCookie("sunshine"));