close

按此前往javascript完整教學目錄

 

 

處理cookie的訣竅:

前一節敘述的幾個javascript語法雖是處理cookie的基本語法,但在實用上並不方便。如設定有效期限時,要先建立一個Date物件,再將之轉換成數字進行加減,又再將之轉換回Date物件,又再將之轉換為GMT字串。又如欲獲得某cookie名稱所對應的值時,javascript並沒有提供適當函式(document.cookie回傳了全部的cookie之名稱與其值)。故要快速、簡潔的處理cookie,必須自己寫函式。如:

  1. 設定cookie的函式:

function set_cookie(name, value, expires, domain, path)

{

          var cookie_string=name+"="+value+";";

          if(arguments[2])

          {

                   var this_date=new Date();

                   this_date.setTime(this_date.getTime()+expires*1000);

                   this_date=this_date.toUTCString();

                   cookie_string+="expires="+this_date+";";

          }

          if(arguments[3])

          {

                   cookie_string+="domain="+domain+";";

          }

          if(arguments[4])

          {

                   cookie_string+="path="+path+";";

          }

          document.cookie=cookie_string;

}

(2) 讀取某名稱之cookie之值的函式:

function get_cookie(item_)

{

          if (!document.cookie){return false;}

          var S=document.cookie;

          var SA=S.split("; ");

          for (var i=0;i<SA.length;i++)

          {

                   var sub_SA=SA[i].split("=");

                   var this_name=sub_SA[0];

                   var this_value=sub_SA[1];

                   if(this_name==item_){return this_value;}

          }

          return false;

}

(3) 利用上述兩函式,可以方便的對cookie進行操作。如:

set_cookie("name","weiwei","60*60*24");

set_cookie("age","18","60*60*24");

document.write("hi! I'm "+get_cookie("name")+", "+get_cookie("age")+" years old!");

執行後顯示:hi! I'm weiwei, 18 years old!

而若要刪除該cookie,即用:

set_cookie("name","weiwei","-1"); 即可。

 

上一篇:javascript cookie操作

arrow
arrow

    埃伯 發表在 痞客邦 留言(0) 人氣()