要删除所有的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=/";
}
代码的实现过程如下:
使用 document.cookie
可以获取当前页面所有的cookie,返回一个字符串,其中包含各个cookie以及它们的值,如下所示:
cookie1=value1; cookie2=value2; cookie3=value3
需要将字符串用 ;
分割成数组,获取每个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