A-A+

js cookie操作(读,写,删除)实例介绍

2016年10月16日 前端设计 暂无评论 阅读 4 views 次

在js中对cookie的操作无非就是cookie读,写,设置,删除操作了,下面我来给大家简单介绍js cookie 读,写,删除操作,有需要的朋友可参考。

设置cookie:

每个cookie都是一个名/值对,可以把下面这样一个字符串赋值给document.cookie,代码如下:

document.cookie="userId=828";

如果要一次存储多个名/值对,可以使用分号加空格(; )隔开,代码如下:

document.cookie="userId=828; userName=hulk";

在cookie 的名或值中不能使用分号(;)、逗号(,)、等号(=)以及空格。在cookie的名中做到这点很容易,但要保存的值是不确定的。如何来存储这些值呢?方 法是用escape()函数进行编码,它能将一些特殊符号使用十六进制表示,例如空格将会编码为“20%”,从而可以存储于cookie值中,而且使用此 种方案还可以避免中文乱码的出现,例如,代码如下:

  1. <script language="javascript">  
  2.        //写cookies  
  3.        function setCookie(name,value)  
  4.        {  
  5.            var Days = 30;  
  6.            var exp = new Date();  
  7.            exp.setTime(exp.getTime() + Days*24*60*60*1000);  
  8.            document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();  
  9.        }          
  10.        //读取cookies  
  11.        function getCookie(name)  
  12.        {  
  13.            var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");  
  14.            if(arr=document.cookie.match(reg))  
  15.            return unescape(arr[2]);  
  16.            else  
  17.            return null;  
  18.        }  
  19.        //删除cookies  
  20.        function delCookie(name)  
  21.        {  
  22.         var exp = new Date();  
  23.         exp.setTime(exp.getTime() - 1);  
  24.         var cval=getCookie(name);  
  25.         if(cval!=null)  
  26.         document.cookiename + "="+cval+";expires="+exp.toGMTString();  
  27.         }//xiariboke.net  
  28.  </script>  

如何调用函数就很简单,直接使用setCookie("名","值")、getCookie("名")、delCookie("名")!

访问Cookie,代码如下:

document.write(document.cookie);//输出类似"name1=value1; name2=value2; name3=value3"的字符串

document.write(typeof document.cookie);//cookie仅仅是个字符串

再看个实例,代码如下:

  1. <script language=javascript>  
  2. //获得coolie 的值  
  3.    
  4. function cookie(name){     
  5.    var cookieArray=document.cookie.split("; "); //得到分割的cookie名值对     
  6.    var cookie=new Object();     
  7.    for (var i=0;i<cookieArray.length;i++){     
  8.       var arr=cookieArray[i].split("=");       //将名和值分开     
  9.       if(arr[0]==name)return unescape(arr[1]); //如果是指定的cookie,则返回它的值     
  10.    }  
  11.    return "";  
  12. }  
  13.    
  14. function delCookie(name)//删除cookie  
  15. {  
  16.    document.cookie = name+"=;expires="+(new Date(0)).toGMTString();  
  17. }  
  18.    
  19. function getCookie(objName){//获取指定名称的cookie的值  
  20.     var arrStr = document.cookie.split("; ");  
  21.     for(var i = 0;i < arrStr.length;i ++){  
  22.         var temp = arrStr[i].split("=");  
  23.         if(temp[0] == objName) return unescape(temp[1]);  
  24.    }  
  25. }  
  26.    
  27. function addCookie(objName,objValue,objHours){      //添加cookie  
  28.     var str = objName + "=" + escape(objValue);  
  29.     if(objHours > 0){                               //为时不设定过期时间,浏览器关闭时cookie自动消失  
  30.         var date = new Date();  
  31.         var ms = objHours*3600*1000;  
  32.         date.setTime(date.getTime() + ms);  
  33.         str += "; expires=" + date.toGMTString();  
  34.    }  
  35.    document.cookie = str;  
  36. }  
  37.    
  38. function SetCookie(name,value)//两个参数,一个是cookie的名子,一个是值  
  39. {  
  40.     var Days = 30; //此 cookie 将被保存 30 天  
  41.     var exp = new Date();    //new Date("December 31, 9998");  
  42.     exp.setTime(exp.getTime() + Days*24*60*60*1000);  
  43.     document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();  
  44. }  
  45. function getCookie(name)//取cookies函数         
  46. {  
  47.     var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));  
  48.      if(arr != nullreturn unescape(arr[2]); return null;  
  49.    
  50. }  
  51. function delCookie(name)//删除cookie  
  52. {  
  53.     var exp = new Date();  
  54.     exp.setTime(exp.getTime() - 1);  
  55.     var cval=getCookie(name);  
  56.     if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();  
  57. }  
  58. </script>  
标签:

给我留言