La suppression des cookies avec le même nom mais des chemins différents
J'ai besoin de supprimer infoclient cookies avec le même nom mais avec des chemins différents. Quelle est la meilleure façon de le faire en javascript.
Changer l'expiration du cookie avec un chemin de / sera toujours seulement expiration de l'un des témoins -- le chemin donné doit correspondre au chemin d'accès défini:
Maintenant, ces exemples supposent que vous êtes à la navigation /path/ ou un sous-répertoire.
[modifier]
À supprimer en vrac, essayez quelque chose comme ceci:
function expireAllCookies(name, paths){var expires =newDate(0).toUTCString();//expire null-path cookies as well
document.cookie = name +'=; expires='+ expires;for(var i =0, l = paths.length; i < l; i++){
document.cookie = name +'=; path='+ paths[i]+'; expires='+ expires;}}
expireAllCookies('name',['/','/path/']);
Donc, si le chemin peut contenir 6 valeurs différentes, que je devrais utiliser 6x document.cookie avec le droit chemin? Essentiellement. Cependant, je suggère de parcourir les sentiers, alors vous avez seulement 1 document.cookie déclaration. Voir mon montage pour une option. Merci, cela fonctionne pour moi. Une question de suivi. Est-il possible de "nourrir" le chemin de tableau avec les chemins d'accès dans les cookies? Comme dans; puis-je obtenir le chemin d'accès à partir d'un cookie? Pas vraiment comme document.cookie renvoie seulement les noms et les valeurs. Toutefois, comme les cookies ne sont disponibles que si son chemin se rapporte à la voie actuelle, vous pouvez sorte de faux par le fractionnement et l'itération window.location.pathname. Voir mon dernier edit.
Va également supprimer les cookies qui n'ont pas de Chemin "/"? vous voulez dire que vous voulez supprimer tous les cookies du même nom, essayez le code de mon édité répondre Le souci est qu'il supprime trop de cookies. Mais, expirant avec path=/ devrait laissant les autres intacts. Je veux supprimer tous les cookies du même nom, indépendamment de ce qui est en chemin. Jusqu'à présent, je seulement obtenir javascript pour supprimer un cookie au lieu de la 2 qui existe (ils ont des chemins différents). Voir la réponse de Jonathan
Il suffit de spécifier le même chemin du cookie que vous souhaitez supprimer, en lui donnant une dernière expiration.
Changer l'expiration du cookie avec un chemin de
/
sera toujours seulement expiration de l'un des témoins -- le chemin donné doit correspondre au chemin d'accès défini:Pour supprimer à la fois, vous aurez à expiration chacun avec leur chemin d'accès:
Maintenant, ces exemples supposent que vous êtes à la navigation
/path/
ou un sous-répertoire.[modifier]
À supprimer en vrac, essayez quelque chose comme ceci:
Démo: http://jsfiddle.net/M2dZ3/
Vous pouvez également faux recherches de chemin d'accès par le fractionnement et l'itération
window.location.pathname
:Démo: http://jsfiddle.net/M2dZ3/2/
Essentiellement. Cependant, je suggère de parcourir les sentiers, alors vous avez seulement 1
document.cookie
déclaration. Voir mon montage pour une option.Merci, cela fonctionne pour moi.
Une question de suivi. Est-il possible de "nourrir" le chemin de tableau avec les chemins d'accès dans les cookies? Comme dans; puis-je obtenir le chemin d'accès à partir d'un cookie?
Pas vraiment comme
document.cookie
renvoie seulement les noms et les valeurs. Toutefois, comme les cookies ne sont disponibles que si son chemin se rapporte à la voie actuelle, vous pouvez sorte de faux par le fractionnement et l'itérationwindow.location.pathname
. Voir mon dernier edit.OriginalL'auteur Jonathan Lonowski
Vous pouvez définir un cookie avec les mêmes paramètres mais une date dans le passé:
Voir quelques précieuses informations sur quirksmode
[EDIT] Pour supprimer les cookies avec le même nom, vous pouvez essayer:
Source
vous voulez dire que vous voulez supprimer tous les cookies du même nom, essayez le code de mon édité répondre
Le souci est qu'il supprime trop de cookies. Mais, expirant avec
path=/
devrait laissant les autres intacts.Je veux supprimer tous les cookies du même nom, indépendamment de ce qui est en chemin. Jusqu'à présent, je seulement obtenir javascript pour supprimer un cookie au lieu de la 2 qui existe (ils ont des chemins différents).
Voir la réponse de Jonathan
OriginalL'auteur JMax