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