JavaScript cookie

/*设置cookie*/
function setCookie(c_name,c_value,expires){
    var date = new Date();
    date.setTime(date.getTime()+(expires*60*1000));
    document.cookie = c_name + "=" + c_value + ";
    expires=" + date.toGMTString();
}
/*上面这个函数中的参数存有 cookie 的名称、值以及过期天数。首先将天数转换为有效的日期,
然后,将 cookie 名称、值及其过期日期存入 document.cookie 对象*/
function getCookie(c_name){
    var name = c_name +"=";    
    var Cookie = document.cookie.split(';');    
    for(var i=0; i<Cookie.length; i++){        
    var c = Cookie[i].trim(); //.trim() 函数用于去除字符串两端的空白字符。
    var c = Cookie[i].replace(/(^\s*)|(\s*$)/g, "")//使用正则替换字符串两端的空白字符。
    if (c.indexOf(name)==0) return c.substring(name.length,c.length);
    }    
    return "";
}
 //存cookie
 //setCookie(cookie名,cookie值,过期时间)
 setCookie("userman","123",5) //此处为5分钟(date.getTime()+(expires*60*1000))
 //获取cookie 
 var userman = getCookie("userman");
 $(class).val(userman)

cookie 的名或值中不能使用分号(;)、逗号(,)、等号(=)、空格,以及中文(会出现错误或乱码问题)。 如果必须使用上述的特殊字符,则需要用escape()函数进行编码(以16进制数的形式转码)存储;如果想要读取含特殊字符和中文的cookie值,在取出值后需要使用unescape()进行解码才能得到原来的cookie值 ;


cookie()的使用

首先包含jQuery的库文件,在后面包含 jquery.cookie.js 的库文件。

<script type="text/javascript" src="jquery.min.js"></script> 
<script type="text/javascript" src="jquery.cookie.js"></script> 
或者
<script type="text/javascript" src="zepto.js"></script> 
<script type="text/javascript" src="zepto.cookie.js"></script>

jquery.cookie.js的使用

 var time = "username"   //cookie的名称
 var date = new Date();  //获取当前时间
 date.setTime(date.getTime() + 300000); //系统当前时间+5分钟    
 $("cookie").val($.fn.cookie(time));//将name = username的cookie值赋给id=cookie的标签
 var detailTime = $("input").text();//获取input的值
 var admin = $("#takerTime").val(detailTime) //获取到的之赋给id=takerTime的input
 $.cookie(time,admin,{path:"/", expires:date})

zepto.cookie.js的使用

 var time = "username"   //cookie的名称
 var date = new Date();  //获取系统时间
 date.setTime(date.getTime() + 300000); //系统当前时间+5分钟    
 $("cookie").val($.fn.cookie(time));//将name = username的cookie值赋给id=cookie的标签
 var detailTime = $("input").text();//获取input的值
 var admin = $("#takerTime").val(detailTime) //获取到的之赋给id=takerTime的input
 $.fn.cookie(time,admin,{path:"/",expires:date})

参数说明

  1. 语法:$.cookie(cookie名,cookie值 , {路径,cookie有效时间 })

  2. $.cookie(time); 读取保存在cookie中名为的time的值。

  3. $.cookie(time,admin); 将值admin写入cookie名为time的cookie中。

  4. {path:”/”,expires:date} date=〉cookie保存的时间;date时间为5分钟; 设置小时用setHours()和getHours方法 :date.setHours(date.getHours() + 1);或者用毫秒的乘法 

  • path: cookie值保存的路径,默认只有设置cookie的网页才能读取该cookie;path:”/”:表示根目录。

  • expires:有限日期,值可以是一个数字(从创建cookie时算起,以天为单位)或一个Date 对 象,如果没有设置时间,浏览器关闭之后此cookie就失效了。