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.stringifyJSON.parse

$.cookie.json = true;

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);
posted @ 2017-09-11 16:19  t1ree  阅读(228)  评论(0编辑  收藏  举报