JS操作cookie

在Web开发中,cookie是一种存储在用户计算机上的小型文本文件,用于在用户访问网站时进行身份验证、记住用户偏好等功能。JavaScript通过document对象的cookie属性来操作cookie。本文将详细介绍如何使用JavaScript来操作cookie,包括设置、获取和删除cookie。
设置cookie
要设置cookie,可以通过以下代码:
function setCookie(name, value, days) {
let expires = "";
if (days) {
let date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + value + expires + "; path=/";
}
setCookie("username", "John Doe", 30);
上面的代码定义了一个setCookie函数,用于设置cookie。该函数接受三个参数:cookie的名称、值和过期天数。如果设置了过期天数,则cookie会在指定的天数后过期;如果不设置过期天数,则cookie会在浏览器关闭时过期。在上面的示例中,设置了一个名为”username”的cookie,值为”John Doe”,过期时间为30天。
获取cookie
要获取cookie,可以通过以下代码:
function getCookie(name) {
let cookieName = name + "=";
let cookieArray = document.cookie.split(';');
for (let i = 0; i < cookieArray.length; i++) {
let cookie = cookieArray[i].trim();
if (cookie.indexOf(cookieName) === 0) {
return cookie.substring(cookieName.length, cookie.length);
}
}
return null;
}
let username = getCookie("username");
console.log(username);
上面的代码定义了一个getCookie函数,用于获取cookie。该函数接受一个参数:cookie的名称。函数会遍历所有的cookie,找到指定名称的cookie并返回其值。在上面的示例中,获取了名为”username”的cookie的值,并将其输出到控制台。
删除cookie
要删除cookie,可以通过以下代码:
function deleteCookie(name) {
document.cookie = name + "=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
}
deleteCookie("username");
上面的代码定义了一个deleteCookie函数,用于删除cookie。该函数接受一个参数:cookie的名称。函数会将指定名称的cookie的过期时间设置为过去的时间,从而让浏览器自动删除该cookie。在上面的示例中,删除了名为”username”的cookie。
示例
下面是一个完整的示例,展示了如何设置、获取和删除cookie:
// 设置cookie
setCookie("username", "John Doe", 30);
// 获取cookie
let username = getCookie("username");
console.log("Username:", username);
// 删除cookie
deleteCookie("username");
console.log("Cookie 'username' has been deleted.");
在上面的示例中,首先设置了名为”username”的cookie,值为”John Doe”,过期时间为30天;然后获取了这个cookie的值并输出到控制台;最后删除了这个cookie。你可以在浏览器的开发者工具中查看cookie的变化。
通过上面的介绍,你应该了解了如何使用JavaScript来操作cookie,包括设置、获取和删除cookie。在实际开发中,你可以根据需要使用cookie来实现各种功能,如用户登录状态的保持、记住用户偏好等。
极客笔记