1. 程式人生 > >JS設定cookie,刪除cookie

JS設定cookie,刪除cookie

js設定cookie有很多種方法。 第一種:(這個是w3c官網的程式碼)

<script> //設定cookie function setCookie(cname, cvalue, exdays) {     var d = new Date();     d.setTime(d.getTime() + (exdays*24*60*60*1000));     var expires = "expires="+d.toUTCString();     document.cookie = cname + "=" + cvalue + "; " + expires; } //獲取cookie function getCookie(cname) {     var name = cname + "=";     var ca = document.cookie.split(";");     for(var i=0; i<ca.length; i++) {         var c = ca[i];         while (c.charAt(0)==" ") c = c.substring(1);         if (c.indexOf(name) != -1) return c.substring(name.length, c.length);     }     return ""; } //清除cookie   function clearCookie(name) {       setCookie(name, "", -1);   }   function checkCookie() {     var user = getCookie("username");     if (user != "") {         alert("Welcome again " + user);     } else {         user = prompt("Please enter your name:", "");         if (user != "" && user != null) {             setCookie("username", user, 365);         }     } } checkCookie(); </script>

第二種:

<script> //JS操作cookies方法! //寫cookies function setCookie(c_name, value, expiredays){     var exdate=new Date();     exdate.setDate(exdate.getDate() + expiredays);     document.cookie=c_name+ "=" + escape(value) + ((expiredays==null) ? "" : ";expires="+exdate.toGMTString());   } //讀取cookies function getCookie(name) {     var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");     if(arr=document.cookie.match(reg))         return (arr[2]);     else         return null; } //刪除cookies 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(); } //使用示例 setCookie("username","Darren",30) alert(getCookie("username")); </script>

第三個例子

<html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />     <head>         <script language="JavaScript" type="text/javascript">                          function addCookie(objName, objValue, objHours){//新增cookie                 var str = objName + "=" + escape(objValue);                 if (objHours > 0) {//為0時不設定過期時間,瀏覽器關閉時cookie自動消失                     var date = new Date();                     var ms = objHours * 3600 * 1000;                     date.setTime(date.getTime() + ms);                     str += "; expires=" + date.toGMTString();                 }                 document.cookie = str;                 alert("新增cookie成功");             }                          function getCookie(objName){//獲取指定名稱的cookie的值                 var arrStr = document.cookie.split("; ");                 for (var i = 0; i < arrStr.length; i++) {                     var temp = arrStr[i].split("=");                     if (temp[0] == objName)                         return unescape(temp[1]);                 }             }                          function delCookie(name){//為了刪除指定名稱的cookie,可以將其過期時間設定為一個過去的時間                 var date = new Date();                 date.setTime(date.getTime() - 10000);                 document.cookie = name + "=a; expires=" + date.toGMTString();             }                          function allCookie(){//讀取所有儲存的cookie字串                 var str = document.cookie;                 if (str == "") {                     str = "沒有儲存任何cookie";                 }                 alert(str);             }                          function $(m, n){                 return document.forms[m].elements[n].value;             }                          function add_(){                 var cookie_name = $("myform", "cookie_name");                 var cookie_value = $("myform", "cookie_value");                 var cookie_expireHours = $("myform", "cookie_expiresHours");                 addCookie(cookie_name, cookie_value, cookie_expireHours);             }                          function get_(){                 var cookie_name = $("myform", "cookie_name");                 var cookie_value = getCookie(cookie_name);                 alert(cookie_value);             }                          function del_(){                 var cookie_name = $("myform", "cookie_name");                 delCookie(cookie_name);                 alert("刪除成功");             }         </script>     </head>     <body>         <form name="myform">             <div>                 <label for="cookie_name">                     名稱                 </label>                 <input type="text" name="cookie_name" />             </div>             <div>                 <label for="cookie_value">                 值                 </lable>                 <input type="text" name="cookie_value" />             </div>             <div>                 <label for="cookie_expireHours">                 多少個小時過期                 </lable>                 <input type="text" name="cookie_expiresHours" />             </div>             <div>                 <input type="button" value="新增該cookie" onclick="add_()"/><input type="button" value="讀取所有cookie" onclick="allCookie()"/><input type="button" value="讀取該名稱cookie" onclick="get_()"/><input type="button" value="刪除該名稱cookie" onclick="del_()"/>             </div>         </form> </body> </html>

注意: chrome瀏覽器在本地獲取不到cookie。必須在伺服器上才可以。如果是本地的話,你可以放到local的www目錄下面。 Google Chrome只支援線上網站的cookie的讀寫操作,對本地HTML的cookie操作是禁止的。所以下面的程式碼如果你寫在一個本地的html檔案中,將彈出的對話方塊內容為空。 document.cookie = "Test=cooo"; alert(document.cookie); 如果這個頁面是線上網站的內容,則會正常顯示cookie內容Test=cooo等等