JS讀寫Cookie(設置、讀取、刪除)
Cookie是客戶端存放數據的一種方式,可用來做狀態保持。
1.設置Cookie:
a.無過期時間:(若不設置過期時間,默認為會話級Cookie,瀏覽器關閉就會失效)
function setCookie(name,value) { document.cookie = name + '=' + escape(value); }
b.固定過期時間:
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(); }
c.自定義過期時間:
//設置自定義過期時間cookie function setCookie(name,value,time) { var msec = getMsec(time); //獲取毫秒 var exp = new Date(); exp.setTime(exp.getTime() + msec*1); document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString(); } //將字符串時間轉換為毫秒,1秒=1000毫秒 function getMsec(DateStr) { var timeNum=str.substring(0,str.length-1)*1; //時間數量 var timeStr=str.substring(str.length-1,str.length); //時間單位前綴,如h表示小時 if (timeStr=="s") //20s表示20秒 { return timeNum*1000; } else if (timeStr=="h") //12h表示12小時 { return timeNum*60*60*1000; } else if (timeStr=="d") { return timeNum*24*60*60*1000; //30d表示30天 } }
2.讀取Cookie:
function getCookie(name) { var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)"); //正則匹配 if(arr=document.cookie.match(reg)){ return unescape(arr[2]); } else{ return null; } }
3.刪除Cookie:
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(); } }
4.調用示例:
setCookie("name","hayden"); alert(getCookie("name"));
分類:
JavaScript