先寫下cookie的組成:數組
name=<value>[; expires=<date>][; domain=<domain>][; path=<path>][; secure]瀏覽器
名稱=<值>[; expires=<cookie要保存的毫秒值>][; domain=<域>][; path=<路徑>][; 安全]安全
解釋:cookie
name是cookie的名字; value是必須的,是cookie裏面存儲的值能夠存放不重要的數據,好比用戶名;dom
剩下的只有expires和secure比較重要了,一個cookie的保存的時間,一個是cookie是否安全的設置。函數
下面會使用一個函數——escape(),這個函數比較重要,由於cookie值裏可能包含分號、逗號或者空格,這個函數會將其編碼。編碼
固然,在讀取cookie值時,必須使用對應的unescape()函數給值解碼。spa
1. 向瀏覽器寫回 cookie:code
function setCookie(cookie_name, val, days){ var date=new Date(); //cookie保存時間的毫秒值 date.setTime(date.getTime() + days*24*3600*1000); document.cookie=cookie_name + "=" + escape(val)+ "; expires ="+ expiration.toGMTString() + "; path=" + "/" + ";domain=" + "mydomain.com" + "; secure"; }
2. 獲取瀏覽器的 cookieblog
//獲取指定名稱的cookie function getCookie(cookie_name) { //獲取cookie數組 var cookies = document.cookie; var cookie_start = cookies.indexOf(cookie_name); // 若是找到了索引,就表明cookie存在 // 反之,就說明不存在。 if (cookie_start != -1) { //獲取value的開始位置 cookie_start += cookie_name.length + 1; //獲取value的結束位置 var cookie_end = cookies.indexOf(";", cookie_start); if (cookie_end == -1) { cookie_end = cookies.length; } var value = unescape(cookies.substring(cookie_start, cookie_end)); return value; } //對應的cookie不存在 return null; }
3. 刪除指定 cookie
function delCookie(cookie_name){ var date = new Date(); //將date設置爲過去的時間 date.setTime(date.getTime() - 1); document.cookie = cookie_name + "= m; expires =" +date.toGMTString(); }
將上面的彙總:
var cookie = { //設置cookie set:function(cookie_name, val, days){ var date=new Date(); //cookie保存時間的毫秒值 date.setTime(date.getTime() + days*24*3600*1000); document.cookie=cookie_name + "=" + escape(val)+ "; expires ="+ expiration.toGMTString() + "; path=" + "/" + ";domain=" + "mydomain.com" + "; secure"; }, //獲取指定名稱的cookie get:function(cookie_name) { //獲取cookie數組 var cookies = document.cookie; var cookie_start = cookies.indexOf(cookie_name); // 若是找到了索引,就表明cookie存在 // 反之,就說明不存在。 if (cookie_start != -1) { //獲取value的開始位置 cookie_start += cookie_name.length + 1; //獲取value的結束位置 var cookie_end = cookies.indexOf(";", cookie_start); if (cookie_end == -1) { cookie_end = cookies.length; } var value = unescape(cookies.substring(cookie_start, cookie_end)); return value; } //對應的cookie不存在 return null; } //刪除cookie del:function(cookie_name){ var date = new Date(); //將date設置爲過去的時間 date.setTime(date.getTime() - 1);
//獲取要刪除的 cookie
var co = get(cookie_name);
if(co != null) { //不爲空就刪除 document.cookie = cookie_name + "= m; expires =" + date.toGMTString();
} } }
4 . 調用:
cookie.set("uesrName","msym",24);//設置爲24天過時 alert(cookie.get("uesrName"));//獲取cookie
cookie.del("uesrName");//刪除cookie
.