components / jquery-cookie
一个用于读取、写入和删除cookie的简单、轻量级jQuery插件
Requires
This package is not auto-updated.
Last update: 2020-12-03 22:36:09 UTC
README
一个用于读取、写入和删除cookie的简单、轻量级jQuery插件。
如果你正在https://github.com/carhartl/jquery-cookie查看,你正在阅读master分支的文档。 查看最新版本(1.4.1)的文档。
构建状态矩阵
安装
在jQuery库之后(除非以其他方式打包脚本)包含脚本
<script src="/path/to/jquery.cookie.js"></script>
不要直接从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
读取所有可用的cookie
$.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时相同的路径、域和安全的选项,除非您依赖于默认选项。
配置
raw
默认情况下,cookie值在写入/读取时使用encodeURIComponent
/decodeURIComponent
进行编码/解码。通过设置raw为true来绕过此操作
$.cookie.raw = true;
json
打开自动存储作为cookie值传递的JSON对象。假设JSON.stringify
和JSON.parse
$.cookie.json = true;
Cookie选项
可以通过设置$.cookie.defaults
对象的属性来全局设置cookie属性,或者通过将一个纯对象传递给选项参数来为每个对$.cookie()
的调用单独设置。每次调用的选项覆盖默认选项。
expires
expires: 365
定义cookie的寿命。值可以是Number
,它将被解释为从创建时间起的日数,或者是一个Date
对象。如果省略,cookie将成为一个会话cookie。
path
path: '/'
定义cookie有效的路径。 默认情况下,cookie的路径与创建cookie的页面路径相同(标准浏览器行为)。 如果您希望在整个域名中使其可用,请使用 path: '/'
。默认:创建cookie的页面路径。
关于Internet Explorer的说明
由于底层WinINET InternetGetCookie实现中的一个不明错误,如果使用包含文件名的路径属性设置cookie,IE的document.cookie将不会返回cookie。
(来自 Internet Explorer Cookie 内部(常见问题解答))
这意味着无法使用 path: window.location.pathname
来设置路径,如果这样的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);
您可以传递任意转换函数。
贡献
查看 贡献指南