关键词

js删除所有的cookie的代码

要删除所有的cookie,可以使用以下代码:

// 获取所有的cookie
var cookies = document.cookie.split(";");
// 遍历所有cookie,逐个删除
for (var i = 0; i < cookies.length; i++) {
  var cookie = cookies[i];
  // 获取cookie名称
  var name = cookie.slice(0, cookie.indexOf("=")).trim();
  // 删除cookie
  document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/";
}

代码的实现过程如下:

  1. 获取所有的cookie。

使用 document.cookie 可以获取当前页面所有的cookie,返回一个字符串,其中包含各个cookie以及它们的值,如下所示:

cookie1=value1; cookie2=value2; cookie3=value3

需要将字符串用 ; 分割成数组,获取每个cookie。

  1. 遍历所有cookie,逐个删除。

对于每个cookie,需要获取它的名称并将其删除。

首先,从cookie字符串中获取cookie名称,以 = 号为分隔符,获取前面部分即为cookie名称。

随后,使用 document.cookie 将cookie的过期时间设置为过去的时间,这会使cookie被立即删除。

需要注意的是,除了将 cookie 的“expires”属性设置为过去的时间之外,还需要将 cookie 的“path”属性设置为“/”。否则,如果 cookie 使用了一个与当前页面不同的路径,那么删除 cookie 的操作可能就不会成功。

以下是一个解释性示例,展示了如何删除所有名为“my-cookie”的cookie:

// 设置一些cookie
document.cookie = "my-cookie=foo";
document.cookie = "another-cookie=bar";

// 删除所有名为“my-cookie”的cookie
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++) {
  var cookie = cookies[i];
  if (cookie.indexOf("my-cookie") !== -1) {
    var name = cookie.slice(0, cookie.indexOf("=")).trim();
    document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/";
  }
}

在这个例子中,使用 document.cookie 设置了两个cookie:名为“my-cookie”的cookie和名为“another-cookie”的cookie。接着,使用类似于上面的代码的循环遍历所有cookie,如果找到名为“my-cookie”的cookie,就将它删除。

本文链接:http://task.lmcjl.com/news/11104.html

展开阅读全文