js-cookie中文文档

本文介绍了js-cookie库的基本使用方法,包括创建、获取、删除cookie,以及如何处理json数据。此外还提供了一些高级用法,例如自定义编码和解码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

js-cookie是一个简单的,轻量级的处理cookies的js API

API

创建

//创建简单的cookie
Cookies.set('name', 'value');
//创建有效期为7天的cookie
Cookies.set('name', 'value', { expires: 7 });
//为当前页创建有效期7天的cookie
Cookies.set('name', 'value', { expires: 7, path: '' });

取值

Cookies.get('name'); // => 'value'
Cookies.get('nothing'); // => undefined
//获取所有cookie
Cookies.get(); // => { name: 'value' }

删除值

Cookies.remove('name');

//如果值设置了路径,那么不能用简单的delete方法删除值,需要在delete时指定路径
Cookies.set('name', 'value', { path: '' });
Cookies.remove('name'); // 删除失败
Cookies.remove('name', { path: '' }); // 删除成功
//注意,删除不存在的cookie不会报错也不会有返回

命名空间

如果担心不小心修改掉Cookies中的数据,可以用noConflict方法定义一个新的cookie。

var Cookies2 = Cookies.noConflict();
Cookies2.set('name', 'value');

json相关

js-cookie允许你向cookie中存储json信息。

如果你通过set方法,传入Array或类似对象,而不是简单的string,那么js-cookie会将你传入的数据用JSON.stringify转换为string保存。

Cookies.set('name', { foo: 'bar' });
Cookies.get('name'); // => '{"foo":"bar"}'
Cookies.get(); // => { name: '{"foo":"bar"}' }

如果你用getJSON方法获取cookie,那么js-cookie会用JSON.parse解析string并返回。

Cookies.getJSON('name'); // => { foo: 'bar' }
Cookies.getJSON(); // => { name: { foo: 'bar' } }

set方法支持的属性

  1. expires
    定义有效期。如果传入Number,那么单位为天,你也可以传入一个Date对象,表示有效期至Date指定时间。默认情况下cookie有效期截止至用户退出浏览器。

  2. path
    string,表示此cookie对哪个地址可见。默认为”/”。

  3. domain
    string,表示此cookie对哪个域名可见。设置后cookie会对所有子域名可见。默认为对创建此cookie的域名和子域名可见。

  4. secure
    true或false,表示cookie传输是否仅支持https。默认为不要求协议必须为https。

骚操作


1.read

通过withConverter方法可以覆写默认的decode实现,并返回一个新的cookie实例。所有与decode有关的get操作,如Cookies.get()或Cookies.get(‘name’)都会先执行此方法中的代码。

document.cookie = 'escaped=%u5317';
document.cookie = 'default=%E5%8C%97';
var cookies = Cookies.withConverter(function (value, name) {
    if ( name === 'escaped' ) {
        return unescape(value);
    }
});
cookies.get('escaped'); // 北
cookies.get('default'); // 北
cookies.get(); // { escaped: '北', default: '北' }

2.write

通过withConverter方法也可以覆写默认的encode实现,并返回一个新的cookie实例。

Cookies.withConverter({
    read: function (value, name) {
        // Read converter
    },
    write: function (value, name) {
        // Write converter
    }
});
### 使用 JavaScript 操作 Cookie #### 设置 Cookie 通过 `document.cookie` 属性可以设置新的 Cookie 或更新现有 Cookie 的值。设置 Cookie 需要构建一个字符串,该字符串由名称、值以及可选的路径、域名、过期时间等组成[^1]。 ```javascript function setCookie(name, value, days) { let expires = ""; if (days) { const date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + (value || "") + expires + "; path=/"; } ``` 此函数允许指定 Cookie 名称、值和有效期天数。如果未提供天数,则创建会话 Cookie,在浏览器关闭后即被删除[^3]。 #### 获取 Cookie 为了读取特定名称的 Cookie 值,可以通过遍历 `document.cookie` 返回的所有 Cookies 来找到目标 Cookie 并解析其值。 ```javascript function getCookie(name) { let match; const regex = new RegExp('(^| )' + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + '=([^;]*)'); return match ? decodeURIComponent(match[2]) : undefined; } const username = getCookie("username"); console.log(username); ``` 上述代码定义了一个更简洁的方法来检索指定名称的 Cookie 值,并处理了可能存在的特殊字符问题。 #### 删除 Cookie 当不再需要某个 Cookie 时,可通过将其到期日期设为过去的时间点从而达到删除的效果。 ```javascript function deleteCookie(name) { document.cookie = name + "=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;"; } ``` 这段脚本将给定名称的 Cookie 的失效时间为过去的某一刻,使得浏览器立即丢弃这条记录。 #### 安全性和隐私注意事项 在使用 Cookie 存储敏感数据之前应当考虑安全性因素,比如启用 HttpOnly 和 Secure 标志位以防止跨站脚本攻击(XSS),并确保只在必要情况下才保存个人信息到 Cookie 中。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值