JavaScript實現cookie的操作
cookie 用於存儲 web 頁面的用戶信息。
一、什麼是 Cookie?
Cookie 是一些數據, 存儲於你電腦上的文本文件中。
當 web 服務器向瀏覽器發送 web 頁面時,在連接關閉後,服務端不會記錄用戶的信息。
Cookie 的作用就是用於解決 "如何記錄客戶端的用戶信息":
- 當用戶訪問 web 頁面時,他的名字可以記錄在 cookie 中。
- 在用戶下一次訪問該頁面時,可以在 cookie 中讀取用戶訪問記錄。
Cookie 以名/值對形式存儲,如下所示:
username=John Doe
當瀏覽器從服務器上請求 web 頁面時, 屬於該頁面的 cookie 會被添加到該請求中。服務端通過這種方式來獲取用戶的信息。
二、創建Cookie
JavaScript 可以使用 document.cookie 屬性來創建 、讀取、及刪除 cookie。
JavaScript 中,創建 cookie 如下所示:
document.cookie="username=John Doe";
您還可以為 cookie 添加一個過期時間(以 UTC 或 GMT 時間)。默認情況下,cookie 在瀏覽器關閉時刪除:
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT";
您可以使用 path 參數告訴瀏覽器 cookie 的路徑。默認情況下,cookie 屬於當前頁面。
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";
創建 cookie 值的函數
首先,我們創建一個函數用於存儲訪問者的名字:
該函數設置瞭 cookie 名、cookie 值、cookie過期時間。
function setCookie(cname,cvalue,exdays) { var d = new Date(); d.setTime(d.getTime()+(exdays*24*60*60*1000)); var expires = "expires="+d.toGMTString(); document.cookie = cname + "=" + cvalue + "; " + expires; //cookie 的名稱為 cname,cookie 的值為 cvalue,並設置瞭 cookie 的過期時間 expires。 }
調用方法:setCookie(cookie名稱,cookie數值,過期時間(天))
setCookie('sex','男', 10);
三、讀取 Cookie
document.cookie 屬性看起來像一個普通的文本字符串,其實它不是。
即使您在 document.cookie 中寫入一個完整的 cookie 字符串, 當您重新讀取該 cookie 信息時,cookie 信息是以名/值對的形式展示的。
如果您設置瞭新的 cookie,舊的 cookie 不會被覆蓋。 新 cookie 將添加到 document.cookie 中,所以如果您重新讀取document.cookie,您將獲得如下所示的數據:
cookie1=value; cookie2=value;
在 JavaScript 中, 可以使用以下代碼來讀取 cookie:
var x = document.cookie;
讀取 cookie 值的函數
然後,我們創建一個函數用戶返回指定 cookie 的值:
function getCookie(cname) { var name = cname + "="; var ca = document.cookie.split(';'); for(var i=0; i<ca.length; i++) { var c = ca[i].trim(); if (c.indexOf(name)==0) return c.substring(name.length,c.length); } return ""; }
調用方法:getCookie(cookie名稱)
getCookie('username');
四、修改 Cookie
在 JavaScript 中,修改 cookie 類似於創建 cookie,如下所示:舊的 cookie 將被覆蓋。
document.cookie="username=John Smith; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";
五、刪除 Cookie
刪除 cookie 非常簡單。您隻需要設置 expires 參數為以前的時間即可。如下所示,設置為 Thu, 01 Jan 1970 00:00:00 GMT:
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
註意,當您刪除時不必指定 cookie 的值。
移除 cookie函數
function removeCookie(key) { setCookie(key, '', -1); //cookie的過期時間設為昨天 }
調用方法:removeCookie(cookie名稱)
removeCookie('age');
六、判斷瀏覽器是否啟用cookie
var cookiesEnabled = (function(){ var id = new Date().getTime(); document.cookie = '__cookieprobe=' + id + ';path=/'; return (document.cookie.indexOf(id) !== -1); })();
到此這篇關於JavaScript操作Cookie的文章就介紹到這瞭。希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。
推薦閱讀:
- js利用cookie實現記住用戶頁面操作
- vue登錄頁實現使用cookie記住7天密碼功能的方法
- 詳解操作cookie的原生方法cookieStore
- Vue實現登錄記住賬號密碼功能的思路與過程
- 使用Jquery操作Cookies