jQuery Cookie 外掛

jQuery Cookie 外掛

jQuery 可以通過 jquery.cookie.js 外掛來操作 Cookie。

官方地址:http://plugins.jquery.com/cookie/

Github 地址:https://github.com/carhartl/jquery-cookie

使用 jquery.cookie.js 之前需要先引入 jQuery:

<script src="/path/to/jquery.min.js"></script> <script src="/path/to/jquery.cookie.js"></script>

我們可以使用第三方資源庫引入這兩個檔案:

<script src="https://cdn.staticfile.org/jquery/3.4.0/jquery.min.js"></script> <script src="https://cdn.staticfile.org/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>

使用方法

建立 cookie:

$.cookie('name', 'value');

如果未指定過期時間,則會在關閉瀏覽器或過期。

建立 cookie,並設定 7 天后過期:

$.cookie('name', 'value', { expires: 7 });

建立 cookie,並設定 cookie 的有效路徑,路徑為網站的根目錄:

$.cookie('name', 'value', { expires: 7, path: '/' });

注:在預設情況下,只有設定 cookie 的網頁才能讀取該 cookie。如果想讓一個頁面讀取另一個頁面設 置的cookie,必須設定 cookie 的路徑。cookie 的路徑用於設定能夠讀取 cookie 的頂級目錄。將這 個路徑設定為網站的根目錄,可以讓所有網頁都能互相讀取 cookie (一般不要這樣設定,防止出現衝突)。

讀取 cookie:

$.cookie('name'); // => "value"
$.cookie('nothing'); // => undefined

讀取所有的 cookie 資訊:

$.cookie(); // => { "name": "value" }

刪除 cookie:

// cookie 刪除成功返回 true,否則返回 false $.removeCookie('name'); // => true $.removeCookie('nothing'); // => false // 寫入使用了 path時,讀取也需要使用相同的屬性 (path, domain) $.cookie('name', 'value', { path: '/' }); // 以下程式碼【刪除失敗】 $.removeCookie('name'); // => false // 以下程式碼【刪除成功】 $.removeCookie('name', { path: '/' }); // => true

注意:刪除 cookie 時,必須傳遞用於設定 cookie 的完全相同的路徑,域及安全選項。

例項

$(document).ready(function(){ $.cookie('name', 'itread01'); // 建立 cookie name = $.cookie('name'); // 讀取 cookie $("#test").text(name); $.cookie('name2', 'itread012', { expires: 7, path: '/' }); name2 = $.cookie('name2'); $("#test2").text(name2); });

嘗試一下 ?

執行完後,我們可以在瀏覽器中檢視 Cookie 資訊,如下圖所示:


引數說明

raw

預設值:false。

預設情況下,讀取和寫入 cookie 的時候自動進行編碼和解碼(使用 encodeURIComponent 編碼,decodeURIComponent 解碼)。要關閉這個功能設定 raw:true 即可:

$.cookie.raw = true;

json

設定 cookie 的資料使用 json 儲存與讀取,這時就不需要使用 JSON.stringify 和 JSON.parse 了。

$.cookie.json = true;

expires

expires: 365

定義 cookie 的有效時間,值可以是一個數字(從建立 cookie 時算起,以天為單位)或一個 Date 物件。如果省略,那麼建立的 cookie 是會話 cookie,將在使用者退出瀏覽器時被刪除。

path

path: '/'

預設情況:只有設定 cookie 的網頁才能讀取該 cookie。

定義 cookie 的有效路徑。預設情況下, 該引數的值為建立 cookie 的網頁所在路徑(標準瀏覽器的行為)。

如果你想在整個網站中訪問這個 cookie 需要這樣設定有效路徑:path: '/'。如果你想刪除一個定義了有效路徑的 cookie,你需要在呼叫函式時包含這個路徑:

$.cookie('the_cookie', null,{ path: '/' });

domain

domain: 'example.com'

預設值:建立 cookie 的網頁所擁有的域名。

secure

secure: true

預設值:false。如果為 true,cookie 的傳輸需要使用安全協議(HTTPS)。