js 操作 cookie 的方法如下:
//設置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);
}
使用事例如下:
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);
}
}
一開始,我都差點以為cookie只能是在在線網站上面才有,而且cookie的作用域一般情況下是整個站點(比如你在某網站的頁面1設置了cookie,然后你跳到了頁面2,頁面2里面也一樣有此cookie的值),因為我的實踐結果是,在本地的一個靜態html(如 D:\demo 目錄下)里面,加入了類似上面的js代碼,但是每次我刷新頁面的時候,瀏覽器都沒有彈出我設置的cookie值,后來通過查找資料和實踐之后,才知道,原因本地的靜態頁面,也可以有cookie的,因為我之前用的瀏覽器是chrome和360急速瀏覽器,而Google Chrome只支持在線網站的cookie的讀寫操作,對本地html的cookie操作是禁止的。我換成了IE瀏覽器之后,就可以了。
PS:chrome瀏覽器的cookie可以在resources里面查看,如下:

