jQuery cookie 插件介绍
一个简易、轻量的jQuery插件,用于读、写和删除cookie。
作者: Klaus Hartl
Github:https://github.com/carhartl/jquery-cookie
安装
要在引入jQuery库后引入:
<script src="/path/to/jquery.cookie.js"></script>
此插件同样可作为AMD或CommonJS模块引入。
用法
创建session cookie:
$.cookie('name', 'value');
创建7天后过期的cookie:
$.cookie('name', 'value', { expires: 7});
创建7天后过期的cookie,在整个站点有效:
$.cookie('name', 'value', { expires: 7, path: '/'});
读取cookie:
$.cookie('name'); //=> "value"
$.cookie('nothing'); //=> undefined
读取所有cookie:
$.cookie(); // => { "name": "value"}
删除cookie:
// 删除成功则返回true,否则返回false
$.removeCookie('name'); //=> true
$.removeCookie('nothing'); //=> false
// 需要使用与写入cookie时相同的属性(path,domain)
$.cookie('name', 'value', { path: '/'});
// 失败
$.removeCookie('name'); // => false
// 成功
$.removeCookie('name', { path: '/'}); //=> true
Note: 删除cookie时,必须传递用于设置cookie的完全相同的路径、域和安全选项,除非你使用默认选项。
配置
raw
默认地,cookie值在读/写时会encoded/decoded
,使用encodeURIComponent/decodeURIComponent
方法。可通过如下设置取消默认行为:
$.cookie.raw = true;
json
打开作为cookie值传递的JSON对象的自动存储。假设JSON.stringify
和JSON.parse
:
$.cookie.json = true;
Cookie 选项
Cookie属性可以通过$.cookie.defaults
对象进行全局设置,亦可分别调用$.cookie()
方法并将plain对象传递给options参数(会覆盖默认选项)。
失效时间
expires: 365
定义cookie的生命时长。它的值可以是数字,该数字将会被解读为自创建时间起的天数;亦或是一个Date
对象。如果省略,该cookie将默认为seesion cookie。
path
path: '/'
定义cookie有效的路径,默认为cookie创建时的页面路径。如果你想让它在整个域可用,使用path: '/'
。
Note: 由于底层WinNET InternetGetCookie实现中的模糊错误,如果设置了包含文件名的路径属性值,IE的document.cookie将不会返回cookie。
这意味着不能设置路径:path: window.location.pathname
,防止类似这样的文件名出现:/check.html
域
domain: 'example.com'
定义cookie有效的域,默认为cookie创建时页面的域。
安全
secure: true
如果设置为true,cookie的传输则要求一个安全协议(https),默认为false。
转换器
提供一个转换函数作为可选的最后一个参数,用来读取cookie,以便将cookie的值转换为不同的形式。
例如:
// 解析值为数字
$.cookie('foo', '42');
$.cookie('foo', Number); // => 42
// Dealing with cookies that have been encoded using escape (3rd party cookies)
$.cookie.raw = true;
$.cookie('foo', unescapse);