下面是关于“JavaScript实现设置、获取和删除Cookie的方法”的完整攻略。
下面是关于“JavaScript实现设置、获取和删除Cookie的方法”的完整攻略。
设置Cookie
Cookie是HTTP协议提供的一种状态管理机制。可以通过JS设置Cookie来在浏览器端存储一些信息。在JavaScript中,设置Cookie主要包括三个步骤:
- 将需要存储的数据转换为字符串格式。
- 将存储字符串写入Cookie。
- 设置Cookie的过期时间。
下面是实现设置Cookie的方法:
function setCookie(name, value, expires) {
let cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value);
if (expires instanceof Date) {
cookieText += '; expires=' + expires.toUTCString();
}
document.cookie = cookieText;
}
函数setCookie()有三个参数,分别是Cookie的名称、值和过期时间。变量cookieText保存着需要写入Cookie的字符串。如果过期时间是Date对象的实例,那么通过toUTCString()方法将其转换为UTC格式并加入到cookieText中。最后,将cookieText设置为document.cookie。下面是一些示例代码来说明如何使用setCookie()函数设置一个Cookie:
setCookie('username', 'bob', new Date(Date.now() + 30 * 24 * 3600 * 1000)); // 设置名为username的Cookie,值为bob,过期时间为30天之后。
setCookie('score', '90', new Date(Date.now() + 365 * 24 * 3600 * 1000)); // 设置名为score的Cookie,值为90,过期时间为一年之后。
获取Cookie
在JavaScript中,获取Cookie包含两个步骤:
- 获取所有cookies
- 解析指定的cookie
下面是实现获取Cookie的方法:
function getCookie(name) {
let cookies = document.cookie.split(';');
for (let i = 0; i < cookies.length; i++) {
let cookie = cookies[i].trim();
let eqIdx = cookie.indexOf('=');
let cookieName = cookie.substring(0, eqIdx);
if (cookieName === name) {
return decodeURIComponent(cookie.substring(eqIdx + 1));
}
}
return undefined;
}
函数getCookie()有一个参数,分别是Cookie的名称。在函数体内部,我们首先使用split()函数把文档cookie分割成一个cookie数组,然后对所有的cookie进行遍历。在每个cookie内部,通过indexOf()查找cookie名称的位置,并解析出cookie的值。如果找到匹配的Cookie,则使用decodeURIComponent()将其编码设置为字符串并返回,否则返回undefined。下面是一个调用getCookie()函数并打印结果的例子:
console.log(getCookie('username')); // 打印Cookie "username" 的值。
let score = getCookie('score');
if(score) {
console.log(parseInt(score) + 10); // 将Cookie "score" 的值转为整数并打印。
}
删除Cookie
删除Cookie的方法很简单,只需要将Cookie的过期时间设置为一个以前的时间即可。下面是实现删除Cookie的方法:
function deleteCookie(name) {
let expires = new Date(Date.now() - 1); // 过期时间设置为1ms之前。
document.cookie = name + '=; expires=' + expires.toUTCString(); // 通过将过期时间设置为过去时间来删除Cookie。
}
函数deleteCookie()有一个参数,分别是Cookie的名称。在函数体内部,我们创建一个过期时间为1ms之前的Date实例,然后将Cookie的名称和过期时间拼接起来以删除该Cookie。下面是实例代码来说明如何删除一个Cookie:
deleteCookie('username'); // 删除名称为username的Cookie
deleteCookie('score'); // 删除名称为score的Cookie
这就是JavaScript实现设置、获取和删除Cookie的方法的完整攻略。希望对你有所帮助!
本文标题为:javascript实现设置、获取和删除Cookie的方法
- ajax调用简单实例 2022-10-18
- JavaScript实现双向链表过程解析 2023-08-08
- JavaScript ESLint插件保姆级使用教程 2022-10-22
- javascript实现图片左右滚动效果【可自动滚动,有左右按钮】 2023-12-23
- 使用 IntraWeb (38) - TIWAppForm、TIWForm、TIWBaseHTMLForm、TIWBaseForm 2023-10-26
- JS(vue iview)分页解决方案 2023-10-08
- js登录滑动验证的实现(不滑动无法登陆) 2023-12-26
- JavaScript实现div的鼠标拖拽效果 2024-01-05
- Ajax 配合node js multer 实现文件上传功能 2023-02-14
- php – 将MySQL查询的结果动态显示到HTML页面中 2023-10-26