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";
}
}
Beachten Sie, dass dieser Code zwei Einschränkungen aufweist:
- Cookies mit
HttpOnly
gesetztem Flag werden nicht gelöscht , da das HttpOnly
Flag den Zugriff von Javascript auf das Cookie deaktiviert.
- Cookies, die mit einem
Path
Wert gesetzt wurden, werden nicht gelöscht . (Dies trotz der Tatsache, dass diese Cookies in angezeigt werden document.cookie
, aber Sie können sie nicht löschen, ohne denselben Path
Wert anzugeben , mit dem sie festgelegt wurden.)
name = ""
stattdessen den namenlosen Wert löschen.trim()
zusätzlichen Speicherplatz odersplit('; ')
(durch ';') benötigen, damit es ordnungsgemäß funktioniert. Ich habe eine Bearbeitung vorgeschlagen.Einzeiler
Für den Fall, dass Sie es schnell einfügen möchten ...
Und der Code für ein Lesezeichen:
quelle
localStorage
,window.localStorage.clear()
können ebenfalls hilfreich seinUnd hier ist eine, um alle Cookies in allen Pfaden und allen Varianten der Domain (www.mydomain.com, mydomain.com usw.) zu löschen:
quelle
Nach ein wenig Frustration habe ich diese Funktion zusammengeschaltet, die versucht, ein benanntes Cookie aus allen Pfaden zu löschen. Rufen Sie dies einfach für jedes Ihrer Cookies auf und Sie sollten näher daran sein, jedes Cookie zu löschen, als Sie es zuvor waren.
Wie immer haben verschiedene Browser unterschiedliche Verhaltensweisen, aber das hat bei mir funktioniert. Genießen.
quelle
Wenn Sie Zugriff auf das Plugin jquery.cookie haben , können Sie alle Cookies folgendermaßen löschen:
quelle
Soweit ich weiß, gibt es keine Möglichkeit, Cookies in der Domain pauschal zu löschen. Sie können ein Cookie löschen, wenn Sie den Namen kennen und sich das Skript in derselben Domäne wie das Cookie befindet.
Sie können den Wert auf leer und das Ablaufdatum auf irgendwo in der Vergangenheit setzen:
Es gibt hier einen ausgezeichneten Artikel über die Manipulation von Cookies mit Javascript.
quelle
document.cookie="username;expires=" + new Date(0).toGMTString()
- kein großer Unterschied, wenn der Cookie vor 1 Sekunde oder 1970 abläuftEinfacher. Schneller.
quelle
Eine Antwort, die sowohl von der zweiten Antwort hier als auch von W3Schools beeinflusst wird
Scheint zu funktionieren
edit: wow fast genau das gleiche wie zachs interessant, wie Stack Overflow sie nebeneinander stellt.
edit: nvm das war anscheinend nur vorübergehend
quelle
Ich dachte, ich würde diese Methode zum Löschen von Cookies teilen. Vielleicht kann es irgendwann für jemand anderen hilfreich sein.
quelle
Sie können eine Liste erhalten, indem Sie in die Variable document.cookie schauen. Wenn Sie sie alle löschen, müssen Sie sie nur alle durchlaufen und einzeln löschen.
quelle
Ich weiß nicht, warum die erste Antwort bei mir nicht funktioniert.
Wie diese Antwort sagte:
Meine Idee ist es also, eine Cookie-Versionskontrolle mit allen Einstellungen hinzuzufügen, Cookies abzurufen und zu entfernen:
quelle
let expireTime = now.getTime();
now.setTime(expireTime);
document.cookie =document.cookie+';expires='+now.toUTCString()+';path=/';
werden die Cookies entfernt.Ich habe ein ausgefeilteres und OOP-orientiertes Cookie-Steuermodul. Es enthält auch eine
deleteAll
Methode zum Löschen aller vorhandenen Cookies. Beachten Sie, dass diese Version derdeleteAll
Methode Einstellungen enthältpath=/
, die das Löschen aller Cookies in der aktuellen Domain bewirken. Wenn Sie Cookies nur aus einem bestimmten Bereich löschen müssen, müssen Sie diese Methode aktualisieren, um Dynamik hinzuzufügenpath
Parameter .Es gibt Hauptklasse
Cookie
:Die Cookie-Setter-Methode (
Cookie.set
) ist ziemlich komplex, daher habe ich sie in eine andere Klasse zerlegt. Es gibt Code von diesem:quelle
Hier ist ein einfacher Code zum Löschen aller Cookies in JavaScript .
Führen Sie die Funktion aus
deleteAllCookies()
, um alle Cookies zu löschen.quelle
Funktionsansatz + ES6
quelle
quelle
Nachdem ich fast alle Methoden getestet hatte, die in mehreren Browserstilen für mehrere Cookie-Stile aufgeführt waren, stellte ich fest, dass hier fast nichts funktioniert, selbst wenn sie zu 50% funktionieren.
Bitte helfen Sie bei Bedarf zu korrigieren, aber ich werde meine 2 Cent hier reinwerfen. Die folgende Methode zerlegt alles und erstellt im Wesentlichen die Cookie-Wertzeichenfolge, die sowohl auf den Einstellungselementen als auch auf einer schrittweisen Erstellung der Pfadzeichenfolge basiert, beginnend mit
/
natürlich mit.Ich hoffe, dies hilft anderen und ich hoffe, dass jede Kritik in Form einer Perfektionierung dieser Methode auftreten kann. Zuerst wollte ich einen einfachen 1-Liner, wie einige andere suchten, aber JS-Cookies sind eines der Dinge, mit denen man nicht so einfach umgehen kann.
quelle
Jquery:
Vanille JS
quelle
Ich habe ein Problem in IE und Edge gefunden. Webkit-Browser (Chrome, Safari) scheinen verzeihender zu sein. Stellen Sie beim Setzen von Cookies immer den "Pfad" auf etwas ein, da die Standardeinstellung die Seite ist, auf der das Cookie gesetzt wird. Wenn Sie also versuchen, es auf einer anderen Seite abzulaufen, ohne den "Pfad" anzugeben, stimmt der Pfad nicht überein und er läuft nicht ab. Das
document.cookie
Wert zeigt weder den Pfad noch den Ablauf für ein Cookie an. Sie können also nicht anhand des Werts ableiten, wo das Cookie gesetzt wurde.Wenn Sie Cookies von verschiedenen Seiten ablaufen lassen müssen, speichern Sie den Pfad der Einstellungsseite im Cookie-Wert, damit Sie ihn später herausziehen oder immer
"; path=/;"
an den Cookie-Wert anhängen können. Dann läuft es von jeder Seite ab.quelle