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";
}
}
Notez que ce code a deux limitations:
- Il ne supprimera pas les cookies avec
HttpOnly
indicateur défini, car l' HttpOnly
indicateur désactive l'accès de Javascript au cookie.
- Il ne supprimera pas les cookies qui ont été définis avec une
Path
valeur. (Ceci malgré le fait que ces cookies apparaîtront dans document.cookie
, mais vous ne pouvez pas les supprimer sans spécifier la même Path
valeur avec laquelle ils ont été définis.)
Robert J. Walker
la source
name = ""
place, pour effacer la valeur sans nom.trim()
l'espace supplémentaire ousplit('; ')
(par ';') pour le faire fonctionner correctement. J'ai proposé un montage.Bon mot
Au cas où vous voudriez le coller rapidement ...
Et le code d'un bookmarklet:
la source
localStorage
doncwindow.localStorage.clear()
peuvent également être utilesEt voici un pour effacer tous les cookies dans tous les chemins et toutes les variantes du domaine (www.mydomain.com, mydomain.com etc.):
la source
Après un peu de frustration avec moi-même, j'ai assimilé cette fonction qui tentera de supprimer un cookie nommé de tous les chemins. Appelez simplement cela pour chacun de vos cookies et vous devriez être plus près de supprimer tous les cookies que vous étiez avant.
Comme toujours, les différents navigateurs ont un comportement différent, mais cela a fonctionné pour moi. Prendre plaisir.
la source
Si vous avez accès au plugin jquery.cookie , vous pouvez effacer tous les cookies de cette façon:
la source
Pour autant que je sache, il n'y a aucun moyen de supprimer une couverture d'un cookie défini sur le domaine. Vous pouvez effacer un cookie si vous connaissez le nom et si le script se trouve sur le même domaine que le cookie.
Vous pouvez définir la valeur sur vide et la date d'expiration quelque part dans le passé:
Il y a un excellent article ici sur la manipulation des cookies en utilisant javascript.
la source
document.cookie="username;expires=" + new Date(0).toGMTString()
- pas beaucoup de différence si le cookie expire il y a 1 seconde ou en 1970Plus simple. Plus rapide.
la source
Une réponse influencée par la deuxième réponse ici et W3Schools
Semble fonctionner
edit: wow presque exactement la même chose que Zach intéressant de voir comment Stack Overflow les a mis côte à côte.
edit: nvm qui était temporaire apparemment
la source
Je pensais partager cette méthode pour effacer les cookies. Peut-être que cela peut être utile pour quelqu'un d'autre à un moment donné.
la source
Vous pouvez obtenir une liste en consultant la variable document.cookie. Les effacer tous consiste simplement à les parcourir tous et à les effacer un par un.
la source
Je ne sais pas pourquoi la première réponse votée ne fonctionne pas pour moi.
Comme le disait cette réponse :
Donc, mon idée est d'ajouter un contrôle de version des cookies avec l'ensemble complet de paramètres, obtenir, supprimer les cookies:
la source
let expireTime = now.getTime();
now.setTime(expireTime);
document.cookie =document.cookie+';expires='+now.toUTCString()+';path=/';
supprimera les cookies.J'ai un module de contrôle des cookies plus sophistiqué et orienté OOP. Il contient également une
deleteAll
méthode pour effacer tous les cookies existants. Notez que cette version de ladeleteAll
méthode a un paramètrepath=/
qui provoque la suppression de tous les cookies dans le domaine actuel. Si vous devez supprimer les cookies uniquement d'une certaine portée, vous devrez mettre à niveau cette méthode en ajoutant unpath
paramètre dynamique à cette méthode.Il y a une
Cookie
classe principale :La méthode de définition des cookies (
Cookie.set
) est plutôt complexe, je l'ai donc décomposée en une autre classe. Il y a du code de celui-ci:la source
Voici un code simple pour supprimer tous les cookies en JavaScript .
Exécutez la fonction
deleteAllCookies()
pour effacer tous les cookies.la source
Approche fonctionnelle + ES6
la source
la source
Après avoir testé presque toutes les méthodes répertoriées dans plusieurs styles de navigateurs sur plusieurs styles de cookies, j'ai trouvé que presque rien ici ne fonctionnait même à 50%.
Veuillez aider à corriger au besoin, mais je vais jeter mes 2 cents ici. La méthode suivante décompose tout et construit essentiellement la chaîne de valeur du cookie sur la base des deux paramètres, ainsi que l'inclusion d'une construction étape par étape de la chaîne de chemin d'accès, en commençant par
/
bien sûr.J'espère que cela aide les autres et j'espère que toute critique pourra venir sous la forme de perfectionner cette méthode. Au début, je voulais un simple liner comme certains autres le souhaitaient, mais les cookies JS font partie de ces choses qui ne sont pas si faciles à gérer.
la source
Jquery:
vanille JS
la source
J'ai trouvé un problème dans IE et Edge. Les navigateurs Webkit (Chrome, safari) semblent plus indulgents. Lors de la configuration des cookies, définissez toujours le "chemin" sur quelque chose, car la valeur par défaut sera la page qui a défini le cookie. Donc, si vous essayez de l'exirer sur une autre page sans spécifier le "chemin", le chemin ne correspondra pas et n'expirera pas. La
document.cookie
valeur n'affiche pas le chemin ou l'expiration d'un cookie, vous ne pouvez donc pas déterminer où le cookie a été défini en regardant la valeur.Si vous devez expirer les cookies de différentes pages, enregistrez le chemin de la page de configuration dans la valeur du cookie afin de pouvoir le retirer plus tard ou toujours l'ajouter
"; path=/;"
à la valeur du cookie. Ensuite, il expirera de n'importe quelle page.la source