Cookie 的使用
Cookie 的使用
注意,當於單一 html 檔直接執行時,Cookie 將無作用;
必須於 server 上跑,Cookie 才能發揮作用。
一、cookie read
以下的方法是讀取 cookie 裡全部資料的語法
document.cookie;
由上圖可知道 cookie 裡現有一筆 _ga 的資料。
二、cookie create
現在來將一筆資料「"username=Tom"」寫進 cookie 裡,語法如下
document.cookie = "username=Tom";
然後再來檢查 cookie 是否成功寫入
三、cookie update
如果想要將 cookie 裡的 username 的值改成 Bill 則可用下列語法去覆蓋 username
document.cookie = "username=Bill";
四、cookie delete
如果你要刪除 username 時,則是要指定有效日期來間接達到刪除的效果。
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 UTC;";
五、特定 cookie name 的找尋
先前 cookie 讀取語法只能做到一次讀取全部資料,
當只想取得特定的 name-value pairs 時,只能特別撰寫程式去解析 cookie 字串。
如下方法,去取得「username」的值
function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.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) == 0) { return c.substring(name.length, c.length); } } return ""; }
六、新增一 cookie name 的值與有效日期
如下方法
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 + ";"; }
說明:
參數 exdays 是天為一個單位,而 getTime() 是以毫秒為一個單位。