當前位置:
首頁 > 知識 > JavaScript編程 Cookie

JavaScript編程 Cookie

Cookie 用於存儲 web 頁面的用戶信息。



JavaScript編程 Cookie

什麼是 Cookie?

Cookie 是一些數據, 存儲於你電腦上的文本文件中。

當 web 伺服器向瀏覽器發送 web 頁面時,在連接關閉後,服務端不會記錄用戶的信息。

Cookie 的作用就是用於解決 "如何記錄客戶端的用戶信息":

  • 當用戶訪問 web 頁面時,他的名字可以記錄在 cookie 中。

  • 在用戶下一次訪問該頁面時,可以在 cookie 中讀取用戶訪問記錄。

Cookie 以名/值對形式存儲,如下所示:

username=John Doe

當瀏覽器從伺服器上請求 web 頁面時, 屬於該頁面的 cookie 會被添加到該請求中。服務端通過這種方式來獲取用戶的信息。



使用 JavaScript 創建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 2013 12:00:00 GMT";

您可以使用 path 參數告訴瀏覽器 cookie 的路徑。默認情況下,cookie 屬於當前頁面。

document.cookie="username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 GMT; path=/";



使用 JavaScript 讀取 Cookie

在 JavaScript 中, 可以使用以下代碼來讀取 cookie:

var x = document.cookie;

JavaScript編程 Cookie



使用 JavaScript 修改 Cookie

在 JavaScript 中,修改 cookie 類似於創建 cookie,如下所示:

document.cookie="username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 GMT; path=/";

舊的 cookie 將被覆蓋。



使用 JavaScript 刪除 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 字元串

document.cookie 屬性看起來像一個普通的文本字元串,其實它不是。

即使您在 document.cookie 中寫入一個完整的 cookie 字元串, 當您重新讀取該 cookie 信息時,cookie 信息是以名/值對的形式展示的。

如果您設置了新的 cookie,舊的 cookie 不會被覆蓋。 新 cookie 將添加到 document.cookie 中,所以如果您重新讀取document.cookie,您將獲得如下所示的數據:

cookie1=value; cookie2=value;

顯示所有 Cookie 創建 Cookie 1 創建 Cookie 2 刪除 Cookie 1 刪除 Cookie 2

如果您需要查找一個指定 cookie 值,您必須創建一個JavaScript 函數在 cookie 字元串中查找 cookie 值。



JavaScript Cookie 實例

在以下實例中,我們將創建 cookie 來存儲訪問者名稱。

首先,訪問者訪問 web 頁面, 他將被要求填寫自己的名字。該名字會存儲在 cookie 中。

訪問者下一次訪問頁面時,他會看到一個歡迎的消息。

在這個實例中我們會創建 3 個 JavaScript 函數:

  1. 設置 cookie 值的函數

  2. 獲取 cookie 值的函數

  3. 檢測 cookie 值的函數


設置 cookie 值的函數

首先,我們創建一個函數用於存儲訪問者的名字:

function setCookie(cname,cvalue,exdays){

函數解析:

以上的函數參數中,cookie 的名稱為 cname,cookie 的值為 cvalue,並設置了 cookie 的過期時間 expires。

該函數設置了 cookie 名、cookie 值、cookie過期時間。



獲取 cookie 值的函數

然後,我們創建一個函數用戶返回指定 cookie 的值:

function getCookie(cname){

函數解析:

cookie 名的參數為 cname。

創建一個文本變數用於檢索指定 cookie :cname + "="。

使用分號來分割 document.cookie 字元串,並將分割後的字元串數組賦值給 ca (ca = document.cookie.split(";"))。

循環 ca 數組 (i=0;i

如果找到 cookie(c.indexOf(name) == 0),返回 cookie 的值 (c.substring(name.length,c.length)。

如果沒有找到 cookie, 返回 ""。



JavaScript編程 Cookie

檢測 cookie 值的函數

最後,我們可以創建一個檢測 cookie 是否創建的函數。

如果設置了 cookie,將顯示一個問候信息。

如果沒有設置 cookie,將會顯示一個彈窗用於詢問訪問者的名字,並調用 setCookie 函數將訪問者的名字存儲 365 天:

function checkCookie(){


完整實例

實例

functionsetCookie(cname,cvalue,exdays){vard = newDate(); d.setTime(d.getTime()+(exdays*24*60*60*1000)); varexpires = "expires="+d.toGMTString(); document.cookie = cname + "=" + cvalue + "; " + expires;}functiongetCookie(cname){varname = cname + "="; varca = document.cookie.split(";"); for(vari=0; i

以下實例在頁面載入時執行 checkCookie() 函數。

document.cookie 將以字元串的方式返回所有的 cookie,類型格式: cookie1=value; cookie2=value; cookie3=value;

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

JavaScript RegExp 對象
JavaScript Window-瀏覽器對象模型
JavaScript 編程Window Screen
JavaScript編程 Window Navigator
JavaScript 字元串(String)對象

TAG:程序員小新人學習 |