📜  如何使用 JavaScript 清除所有 cookie?(1)

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

如何使用 JavaScript 清除所有 cookie?

JavaScript 提供了一个 Document.cookie 属性,该属性可以获取或设置 cookie。如果需要清除所有 cookie,可以通过以下两种方式实现。

方法一:通过更改 cookie 的过期时间

cookie 字段中有一个过期时间的属性,如果将过期时间设置为已过去的时间,那么该 cookie 将被浏览器删除。可以对所有 cookie 都执行这个操作,从而达到清除所有 cookie 的目的。

// 获取所有 cookie
var cookies = document.cookie.split(";");

// 循环遍历所有 cookie
for (var i = 0; i < cookies.length; i++) {
  var cookieSplit = cookies[i].split("=");
  var name = cookieSplit[0];
  var value = cookieSplit[1];

  // 设置过期时间为已过去的时间
  document.cookie = name + "=" + value + "; expires=Thu, 01 Jan 1970 00:00:01 GMT";
}
方法二:替换当前的 cookie 字符串

使用第一个方法没有问题,但是需要循环遍历所有的 cookie,有时候 cookie 的数量可能很多,循环遍历的效率会受到影响。此时,使用第二种方法可能会更好一些。

// 将 cookie 字符串替换为空字符串
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";
document.cookie = "password=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";

这段代码会将 username 和 password 两个 cookie 从浏览器中删除。

总之,以上两种方式都可以用来清除所有 cookie,选择哪一种方法取决于具体情况。如果 cookie 数量不是很多,推荐使用第一种方法,因为代码更简洁,可读性更好。如果 cookie 数量很多,建议使用第二种方法,因为效率更高。