jQuery Cookie 插件

2021-12-14 15:05 更新

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>

我們可以使用第三方資源庫引入這兩個(gè)文件:

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

使用方法

創(chuàng)建 cookie:

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

如果未指定過期時(shí)間,則會(huì)在關(guān)閉瀏覽器或過期。

創(chuàng)建 cookie,并設(shè)置 7 天后過期:

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

創(chuàng)建 cookie,并設(shè)置 cookie 的有效路徑,路徑為網(wǎng)站的根目錄:

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

注:在默認(rèn)情況下,只有設(shè)置 cookie 的網(wǎng)頁才能讀取該 cookie。如果想讓一個(gè)頁面讀取另一個(gè)頁面設(shè) 置的cookie,必須設(shè)置 cookie 的路徑。cookie 的路徑用于設(shè)置能夠讀取 cookie 的頂級(jí)目錄。將這 個(gè)路徑設(shè)置為網(wǎng)站的根目錄,可以讓所有網(wǎng)頁都能互相讀取 cookie (一般不要這樣設(shè)置,防止出現(xiàn)沖突)。

讀取 cookie:

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

讀取所有的 cookie 信息:

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

刪除 cookie:

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

注意:刪除 cookie 時(shí),必須傳遞用于設(shè)置 cookie 的完全相同的路徑,域及安全選項(xiàng)。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>W3Cschool</title> 
<script src="https://cdn.staticfile.org/jquery/3.4.0/jquery.min.js" rel="external nofollow"  rel="external nofollow" ></script>
<script src="https://cdn.staticfile.org/jquery-cookie/1.4.1/jquery.cookie.min.js" rel="external nofollow"  rel="external nofollow" ></script>
<script>
$(document).ready(function(){
  $.cookie('name', 'w3Cschool');  // 創(chuàng)建 cookie
  name = $.cookie('name');     // 讀取 cookie
  $("#test").text(name);
  $.cookie('name2', 'W3Cschool2', { expires: 7, path: '/' });
  name2 = $.cookie('name2');
  $("#test2").text(name2);
});
</script>
</head>
<body>
<p id="test"></p>
<p id="test2"></p>
</body>
</html>

執(zhí)行完后,我們可以在瀏覽器中查看 Cookie 信息,如下圖所示:


參數(shù)說明

raw

默認(rèn)值:false。

默認(rèn)情況下,讀取和寫入 cookie 的時(shí)候自動(dòng)進(jìn)行編碼和解碼(使用 encodeURIComponent 編碼,decodeURIComponent 解碼)。要關(guān)閉這個(gè)功能設(shè)置 raw:true 即可:

$.cookie.raw = true;

json

設(shè)置 cookie 的數(shù)據(jù)使用 json 存儲(chǔ)與讀取,這時(shí)就不需要使用 JSON.stringify 和 JSON.parse 了。

$.cookie.json = true;

expires

expires: 365

定義 cookie 的有效時(shí)間,值可以是一個(gè)數(shù)字(從創(chuàng)建 cookie 時(shí)算起,以天為單位)或一個(gè) Date 對(duì)象。如果省略,那么創(chuàng)建的 cookie 是會(huì)話 cookie,將在用戶退出瀏覽器時(shí)被刪除。

path

path: '/'

默認(rèn)情況:只有設(shè)置 cookie 的網(wǎng)頁才能讀取該 cookie。

定義 cookie 的有效路徑。默認(rèn)情況下, 該參數(shù)的值為創(chuàng)建 cookie 的網(wǎng)頁所在路徑(標(biāo)準(zhǔn)瀏覽器的行為)。

如果你想在整個(gè)網(wǎng)站中訪問這個(gè) cookie 需要這樣設(shè)置有效路徑:path: '/'。如果你想刪除一個(gè)定義了有效路徑的 cookie,你需要在調(diào)用函數(shù)時(shí)包含這個(gè)路徑:

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

domain

domain: 'example.com'

默認(rèn)值:創(chuàng)建 cookie 的網(wǎng)頁所擁有的域名。

secure

secure: true

默認(rèn)值:false。如果為 true,cookie 的傳輸需要使用安全協(xié)議(HTTPS)。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)