📜  删除 cookie - Javascript (1)

📅  最后修改于: 2023-12-03 15:36:54.351000             🧑  作者: Mango

删除 Cookie - JavaScript

在 JavaScript 中使用 Cookie 是很常见的,但当我们想要删除掉一个已经存在的 Cookie 时,应该怎么做呢?本文将会介绍如何使用 JavaScript 删除 Cookie,包括删除当前域下所有的 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,我们需要知道该 Cookie 的名称。以下是一个实现该功能的 JavaScript 函数:

function deleteCookie(name) {
  document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT";
}

该函数只需将要删除的 Cookie 的名称作为参数传递进去即可。

设置过期时间使 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 即刻失效。希望这篇文章对你有所帮助!