Js对Cookie的操作函数

Js对Cookie的操作函数

JavaScript代码
  1. //写入 cookie   
  2. //不区分 cookieName 的大小写   
  3. //不考虑子键   
  4. function ResponseCookies(cookieName, cookieValue, expires)   
  5. {   
  6.     if (expires)   
  7.     {   
  8.         //指定了 expires   
  9.         document.cookie = ResponseCookies_GetCookieName(cookieName) + "=" + escape(cookieValue) + "; expires=" + expires.toGMTString();   
  10.     }   
  11.     else  
  12.     {   
  13.         document.cookie = ResponseCookies_GetCookieName(cookieName) + "=" + escape(cookieValue);   
  14.     }   
  15. }   
  16.   
  17. //获取并返回与 cookieName 同名的 cookie 名称,允许大小写不同   
  18. //如果不存在这样的 cookie,就返回 cookieName   
  19. function ResponseCookies_GetCookieName(cookieName)   
  20. {   
  21.     var lowerCookieName = cookieName.toLowerCase();   
  22.     var cookieStr = document.cookie;   
  23.        
  24.     if (cookieStr == "")   
  25.     {   
  26.         return cookieName;   
  27.     }   
  28.        
  29.     var cookieArr = cookieStr.split("; ");   
  30.     var pos = -1;   
  31.     for (var i=0; i<cookieArr.length; i++)   
  32.     {   
  33.         pos = cookieArr[i].indexOf("=");   
  34.         if (pos > 0)   
  35.         {   
  36.             if (cookieArr[i].substring(0, pos).toLowerCase() == lowerCookieName)   
  37.             {   
  38.                 return cookieArr[i].substring(0, pos);   
  39.             }   
  40.         }   
  41.     }   
  42.     return cookieName;   
  43. }   
  44.   
  45. //获取并返回 cookie 值   
  46. //不区分 cookieName 的大小写   
  47. //dfltValue 为默认返回值   
  48. //不考虑子键   
  49. function RequestCookies(cookieName, defValue)   
  50. {   
  51.     var lowerCookieName = cookieName.toLowerCase();   
  52.     var cookieStr = document.cookie;   
  53.        
  54.     if (cookieStr == "")   
  55.     {   
  56.         return dfltValue;   
  57.     }   
  58.        
  59.     var cookieArr = cookieStr.split("; ");   
  60.     var pos = -1;   
  61.     for (var i=0; i<cookieArr.length; i++)   
  62.     {   
  63.         pos = cookieArr[i].indexOf("=");   
  64.         if (pos > 0)   
  65.         {   
  66.             if (cookieArr[i].substring(0, pos).toLowerCase() == lowerCookieName)   
  67.             {   
  68.                 return unescape(cookieArr[i].substring(pos+1, cookieArr[i].length));   
  69.             }   
  70.         }   
  71.     }   
  72.     return defValue;   
  73. }   
  74.   
  75. //--------------------------------------------------------------------   
  76. function WriteCookie()   
  77. {   
  78.  var len= arguments.length;   
  79.  var domain,name,value,days;   
  80.  switch(len)   
  81.  {      
  82.     case   2:   
  83.      domain = "private";   
  84.      name = arguments[0];   
  85.      value = arguments[1];   
  86.      days = 0;   
  87.      break;   
  88.     case  3:   
  89.      domain = "private";   
  90.      name = arguments[0];   
  91.      value = arguments[1];   
  92.      days =  arguments[2];   
  93.      break;   
  94.     default:   
  95.    domain = "";   
  96.    name = "";   
  97.      value = "";   
  98.      days = 0;   
  99.      break;   
  100.  }   
  101.  jsWriteCookie(domain,name, value, days);   
  102. }   
  103.   
  104. function GetCookie(domain,name,defValue)   
  105. {   
  106.  var len= arguments.length;   
  107.  switch(len)   
  108.  {      
  109.     case   1:   
  110.      domain = "private";   
  111.      name = arguments[0];   
  112.      defValue = "";   
  113.      break;   
  114.     case   2:   
  115.      domain = "private";   
  116.      name = arguments[0];   
  117.      defValue = arguments[1];   
  118.      break;   
  119.      case   3:   
  120.      domain = arguments[0];   
  121.      name = arguments[1];   
  122.      defValue = arguments[2];   
  123.      break;   
  124.    default:   
  125.    domain = "";   
  126.    name = "";   
  127.    defValue = "";   
  128.      break;   
  129.  }   
  130.  return jsGetCookie(domain,name, defValue);   
  131. }   
  132.   
  133. function Clear()   
  134. {   
  135.  var len= arguments.length;   
  136.  var domain,name;   
  137.  switch(len)   
  138.  {      
  139.     case   0:   
  140.      domain = "";   
  141.      name = "";   
  142.      break;   
  143.     case   1:   
  144.      domain = arguments[0];   
  145.      name = "";   
  146.      break;   
  147.     case   2:   
  148.      domain = arguments[0];   
  149.      name = arguments[1];   
  150.      break;   
  151.     default:   
  152.      break;   
  153.  }   
  154.  jsClear(domain,name);   
  155. }   
  156.   
  157. function jsWriteCookie(domain,name, value, days)    
  158. {    
  159.  var expire_date=new Date();    
  160.  var ms_from_now=days*24*60*60*1000;   
  161.  domain = domain.toLowerCase();   
  162.  var domainstr,curhost,cookiedomain;   
  163.  curhost = GetHost();   
  164.  expire_date.setTime(expire_date.getTime()+ms_from_now);   
  165.  if(days == 0)   
  166.  {   
  167.   document.cookie =encodeURIComponent(domain+name).toLowerCase()+ "=" + encodeURIComponent(value) + "; ; path=/; domain="+curhost+"; ";    
  168.  }   
  169.  else  
  170.  {    
  171.   document.cookie =encodeURIComponent(domain+name).toLowerCase() + "=" + encodeURIComponent(value) + "; expires=" + expire_date.toGMTString() + "; path=/; domain="+curhost+"; ";      
  172.  }   
  173. }   
  174.   
  175. function jsGetCookie(domain,name,defValue)    
  176. {   
  177.     domain = domain.toLowerCase();   
  178.   
  179.     name = name.toLowerCase();   
  180.     var jsmsg="";   
  181.     jsmsg += "name="+name+"/r";   
  182.     jsmsg += "defValue="+defValue+"/r";   
  183.  var search;    
  184.  search = encodeURIComponent(domain+name).toLowerCase()+ "="  
  185.     jsmsg += "search="+search+"/r";   
  186.  offset = document.cookie.indexOf(search)    
  187.  if (offset != -1)    
  188.  {    
  189.   offset += search.length ;    
  190.   end = document.cookie.indexOf(";", offset) ;    
  191.   if (end == -1)    
  192.    end = document.cookie.length;    
  193.   return decodeURIComponent(document.cookie.substring(offset, end));    
  194.  }    
  195.  else    
  196.   return defValue;   
  197. }   
  198.   
  199. function jsClear(domain,name)   
  200. {   
  201.  var expdate = new Date();    
  202.  expdate.setTime(expdate.getTime() - (86400 * 1000 * 1));    
  203.  WriteCookie(name, "", expdate);   
  204.     
  205. }   
  206.   
  207. function GetHost(url)    
  208. {    
  209.  var host = "";   
  210.  if(typeof url == "undefined" || null == url)   
  211.   url = window.location.href;   
  212.  var regex = /.*/:([^//]*).*/;   
  213.  var match = url.match(regex);   
  214.  if(typeof match != "undefined" && null != match)   
  215.   host = match[1];   
  216.  return host;   
  217. }    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值