1. 程式人生 > >jQuery中cookie的簡單操作

jQuery中cookie的簡單操作

pat sign curl source con 天數 int eth 關閉

jQuery 可以通過 jquery.cookie.js 插件來操作 Cookie。

用NuGet安裝:PM>Install-Package js-cookie -Version

官網:https://www.npmjs.com/package/js-cookie#direct-download

點擊下載:https://github.com//js-cookie/js-cookie/archive/master.zip

直接在jQuery.js之後引用 :

<script src="https://cdn.jsdelivr.net/npm/[email protected]/src/js.cookie.min.js"></script>

基本用法

創建一個在整個網站上有效的Cookie:

Cookies.set(‘name‘, ‘value‘);

創建一個從現在起7天後過期的cookie,在整個站點上有效:

Cookies.set(‘name‘, ‘value‘, { expires: 7 });

創建一個過期的cookie,對當前頁面的路徑有效:

Cookies.set(‘name‘, ‘value‘, { expires: 7, path: ‘‘ });

讀取cookie:

Cookies.get(‘name‘); // => ‘value‘ Cookies.get(‘nothing‘); // => undefined

閱讀所有可見的Cookie:

Cookies.get(); // => { name: ‘value‘ }

刪除cookie:

Cookies.remove(‘name‘);

刪除對當前頁面路徑有效的cookie:

Cookies.set(‘name‘, ‘value‘, { path: ‘‘ }); Cookies.remove(‘name‘); // 失敗!
Cookies.remove(‘name‘, { path: ‘‘ }); //刪除了!

重要!刪除cookie時,必須傳遞用於設置cookie的完全相同的路徑和域屬性,除非您依賴於默認屬性。

註意:刪除未存在的cookie不會引發任何異常,也不會返回任何值

Cookie屬性

Cookie屬性默認值可以通過設置Cookies.defaults對象的屬性來全局設置,也可以Cookies.set(...)通過在最後一個參數中傳遞普通對象來為每個調用單獨設置。每次調用屬性會覆蓋默認屬性。

expires

定義何時刪除cookie。值可以是Number將被解釋為創建時或Date實例的天數。如果省略,cookie將成為會話cookie。

要創建在不到一天的時間內到期的cookie

默認值:用戶關閉瀏覽器時會刪除Cookie。

例子:

Cookies.set(‘name, ‘value, { expires: 365 }); Cookies.get(‘name); // => ‘value‘ Cookies.remove(‘name);

path

A String表示cookie可見的路徑。

默認: /

例子:

Cookies.set(‘name‘, ‘value‘, { path: ‘‘ }); Cookies.get(‘name‘); // => ‘value‘ Cookies.remove(‘name‘, { path: ‘‘ });

關於Internet Explorer的註意事項:

由於底層WinINET InternetGetCookie實現中存在一個模糊的錯誤,如果使用包含文件名的路徑屬性設置,IE的document.cookie將不會返回cookie。

這意味著path: window.location.pathname如果這樣的路徑名包含如下所示的文件名,則無法設置路徑:( /check.html或者至少,這樣的cookie無法正確讀取)。

domain

A String表示cookie應該可見的有效域。cookie也將對所有子域可見。

默認值: Cookie僅對創建cookie的頁面的域或子域可見,Internet Explorer除外(請參見下文)。

例子:

假設正在創建的cookie site.com

Cookies.set(‘name‘, ‘value‘, { domain: ‘subdomain.site.com‘ }); Cookies.get(‘name‘); // => undefined (need to read at ‘subdomain.site.com‘)

關於Internet Explorer默認行為的註意事項:

如果我沒有為cookie指定DOMAIN屬性,IE會將它發送到所有嵌套的子域嗎。例子上設置的cookie將發送到sub2.sub1.example.com。在這方面,Internet Explorer與其他瀏覽器不同。這意味著如果省略該domain屬性,它將在IE中顯示為子域。

secure

任一truefalse,表示如果cookie傳輸需要安全協議(HTTPS)。

默認值:無安全協議要求。

例子:

Cookies.set(‘name‘, ‘value‘, { secure: true }); Cookies.get(‘name‘); // => ‘value‘ Cookies.remove(‘name‘);

jQuery中cookie的簡單操作