jQuery Cookie
插件 jQuery.cookie 中文 API 文档
- Github 地址:https://github.com/carhartl/jquery-cookie
- Github2:https://github.com/js-cookie/js-cookie/issues
- 源码下载: -
- 效果演示: -
jquery.cookie
一个简单,轻量级的 jQuery 插件,用于读取,写入和删除 cookie。
如果您正在查看此内容,那么您正在阅读旧存储库的文档。 查看最新向后兼容版本(1.5.1)的文档。
安装
在 jQuery 库之后包含脚本(除非你以其他方式打包脚本):
不要直接从 GitHub 包含脚本(http://raw.github.com/ …)。该文件作为 text / plain 提供,因此在 Windows 7 上的 Internet Explorer 中被阻止(因为 MIME 类型错误)。底线:GitHub 不是 CDN。
该插件也可以作为 AMD 或 CommonJS 模块加载。
用法
创建会话 cookie:
$.cookie('name', 'value');
从那时起 7 天后创建过期的 cookie:
$.cookie('name', 'value', { expires: 7 });
创建过期的 cookie,在整个站点上有效:
$.cookie('name', 'value', { expires: 7, path: '/' });
读取 cookie:
$.cookie('name'); // => "value"
$.cookie('nothing'); // => undefined
阅读所有可用的 cookies:
$.cookie(); // => { "name": "value" }
删除 cookie:
// Returns true when cookie was successfully deleted, otherwise false
$.removeCookie('name'); // => true
$.removeCookie('nothing'); // => false
// Need to use the same attributes (path, domain) as what the cookie was written with
$.cookie('name', 'value', { path: '/' });
// This won't work!
$.removeCookie('name'); // => false
// This will work!
$.removeCookie('name', { path: '/' }); // => true
注意:删除 cookie 时,必须传递用于设置 cookie 的完全相同的路径,域和安全选项,除非您依赖于默认选项。
组态
生的
默认情况下,使用 encodeURIComponent/ 时,写入 / 读取时会对 cookie 值进行编码 / 解码 decodeURIComponent。通过将 raw 设置为 true 来绕过此:
$.cookie.raw = true;
JSON
打开作为 cookie 值传递的 JSON 对象的自动存储。假设 JSON.stringify 和 JSON.parse:
$.cookie.json = true;
Cookie 选项
可以通过设置 $.cookie.defaults 对象的属性来全局设置 Cookie 属性,也可以 $.cookie() 通过将普通对象传递给 options 参数来为每个调用单独设置 Cookie 属性。每次调用选项会覆盖默认选项。
到期
expires: 365
定义 cookie 的生命周期。值可以是 Number 将被解释为创建时间或 Date 对象的天数。如果省略,cookie 将成为会话 cookie。
路径
path: '/'
定义 cookie 有效的路径。默认情况下,cookie 的路径是创建 cookie 的页面的路径(标准浏览器行为)。如果您希望在整个域使用中使其可用 path: ‘/’。默认值:创建 cookie 的页面路径。
关于 Internet Explorer 的注意事项:
由于底层 WinINET InternetGetCookie 实现中存在一个模糊的错误,如果使用包含文件名的路径属性设置,IE 的 document.cookie 将不会返回 cookie。
(来自 Internet Explorer Cookie Internals(FAQ))
这意味着 path: window.location.pathname 如果这样的路径名包含如下所示的文件名,则无法设置路径:( /check.html 或者至少,这样的 cookie 无法正确读取)。
域
domain: 'example.com'
定义 cookie 有效的域。默认值:创建 cookie 的页面域。
安全
secure: true
如果为 true,则 cookie 传输需要安全协议(https)。默认值:false。
转换器
提供转换函数作为可选的最后一个参数进行读取,以便将 cookie 的值动态更改为不同的表示形式。
将值解析为数字的示例:
$.cookie('foo', '42');
$.cookie('foo', Number); // => 42
处理使用 escape(第三方 cookie)编码的 cookie:
$.cookie.raw = true;
$.cookie('foo', unescape);
您可以传递任意转换函数。