jQuery中cookie的簡單操作
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 Cookies Cookiespath
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
:
關於Internet Explorer默認行為的註意事項:
如果我沒有為cookie指定DOMAIN屬性,IE會將它發送到所有嵌套的子域嗎。例子上設置的cookie將發送到sub2.sub1.example.com。在這方面,Internet Explorer與其他瀏覽器不同。這意味著如果省略該domain
屬性,它將在IE中顯示為子域。
secure
任一true
或false
,表示如果cookie傳輸需要安全協議(HTTPS)。
默認值:無安全協議要求。
例子:
Cookies.set(‘name‘, ‘value‘, { secure: true }); Cookies.get(‘name‘); // => ‘value‘ Cookies.remove(‘name‘);jQuery中cookie的簡單操作