📅  最后修改于: 2023-12-03 15:36:54.351000             🧑  作者: Mango
在 JavaScript 中使用 Cookie 是很常见的,但当我们想要删除掉一个已经存在的 Cookie 时,应该怎么做呢?本文将会介绍如何使用 JavaScript 删除 Cookie,包括删除当前域下所有的 Cookie、删除特定的 Cookie,以及设置过期时间使 Cookie 即刻失效。
要删除当前域下的所有 Cookie,我们需要遍历每个 Cookie 并将其过期时间设为当前时间。以下是一个实现该功能的 JavaScript 函数:
function deleteAllCookies() {
var cookies = document.cookie.split(";");
for(var i=0; i<cookies.length; i++) {
var cookie = cookies[i];
var eqPos = cookie.indexOf("=");
var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
}
该函数使用 document.cookie
获取当前网页的所有 Cookie,将其以字符串形式存储在 cookies
变量中。接下来,在 for
循环中遍历 cookies
数组,并将每个 Cookie 的过期时间设为当前时间。之所以采用这种方式来删除 Cookie,是因为浏览器会自动删除过期的 Cookie。
要删除特定的 Cookie,我们需要知道该 Cookie 的名称。以下是一个实现该功能的 JavaScript 函数:
function deleteCookie(name) {
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}
该函数只需将要删除的 Cookie 的名称作为参数传递进去即可。
要使一个 Cookie 即刻失效,我们可以将它的过期时间设为当前时间之前的一个日期。以下是一个实现该功能的 JavaScript 函数:
function expireCookie(name) {
var date = new Date();
date.setTime(date.getTime() - 10000);
document.cookie = name + "=;expires=" + date.toGMTString();
}
该函数将过期时间设为当前时间之前 10 秒,这将导致该 Cookie 立即失效。
在 JavaScript 中删除 Cookie 是一个非常简单的任务。我们可以遍历所有的 Cookie 并将其过期时间设为当前时间,也可以使用特定名称来删除特定的 Cookie。最后,我们可以使用过期时间将一个 Cookie 即刻失效。希望这篇文章对你有所帮助!