jQuery中cookie的簡單操做

jQuery 能夠經過 jquery.cookie.js 插件來操做 Cookie。javascript

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

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

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

直接在jQuery.js以後引用 :git

<script src="https://cdn.jsdelivr.net/npm/js-cookie@2/src/js.cookie.min.js"></script>

基本用法

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

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

建立一個從如今起7天后過時的cookie,在整個站點上有效:npm

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

建立一個過時的cookie,對當前頁面的路徑有效:瀏覽器

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

讀取cookie:安全

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

閱讀全部可見的Cookie: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'{ expires365 });
Cookies.get('name')// => 'value'
Cookies.remove('name');

path

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

 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');
相關文章
相關標籤/搜索