Muszę usunąć pliki cookie z klientem o tej samej nazwie, ale z różnymi ścieżkami. Jaki jest najlepszy sposób to zrobić w javascript.Usuwanie plików cookie o tej samej nazwie, ale różnych ścieżkach.
Odpowiedz
Po prostu podaj tę samą ścieżkę pliku cookie, który chcesz usunąć, nadając mu wcześniejszą datę ważności.
document.cookie = 'name=value1; path=/';
document.cookie = 'name=value2; path=/path/';
alert(document.cookie); // name=value1; name=value2
document.cookie = 'name=; path=/path/; expires=' + new Date(0).toUTCString();
alert(document.cookie); // name=value1
Zmiana go wygaśnie cookie ze ścieżką /
będzie nadal tylko wygaśnie jeden z cookies - ścieżki podanej musi dopasować ścieżkę Zestaw:
document.cookie = 'name=; path=/; expires=' + new Date(0).toUTCString();
alert(document.cookie); // name=value2
Aby usunąć zarówno ci „ll mają wygasnąć każdy z ich drodze:
document.cookie = 'name=; path=/; expires=' + new Date(0).toUTCString();
document.cookie = 'name=; path=/path/; expires=' + new Date(0).toUTCString();
alert(document.cookie); // {blank}
teraz te przykłady zakładają jesteś przeglądania /path/
lub podkatalogu niego.
[edytuj]
Aby usunąć luzem, spróbuj coś takiego:
function expireAllCookies(name, paths) {
var expires = new Date(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/']);
Demo: http://jsfiddle.net/M2dZ3/
Można również fałszywe wyszukiwań ścieżkę rozszczepienia i iteracji window.location.pathname
:
function expireActiveCookies(name) {
var pathname = location.pathname.replace(/\/$/, ''),
segments = pathname.split('/'),
paths = [];
for (var i = 0, l = segments.length, path; i < l; i++) {
path = segments.slice(0, i + 1).join('/');
paths.push(path); // as file
paths.push(path + '/'); // as directory
}
expireAllCookies(name, paths);
}
Można ustawić ciasteczko z tymi samymi parametrami, ale datę w przeszłości:
document.cookie =
'ppkcookie2=another test; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/'
zobaczyć kilka cennych informacji on quirksmode
[EDIT], aby usunąć ciasteczka z tej samej nazwie, można spróbuj:
function delete_cookie (cookie_name)
{
var cookie_date = new Date (); // current date & time
cookie_date.setTime (cookie_date.getTime() - 1);
document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
}
Czy to spowoduje usunięcie plików cookie, które nie mają ścieżki "/"? – JKown
masz na myśli to, że chcesz usunąć wszystkie pliki cookie o tej samej nazwie, spróbuj kodu z mojej edytowanej odpowiedzi – JMax
Obawia się, że usunie zbyt wiele plików cookie. Ale wygasające z 'path = /' powinno pozostawiać pozostałe nietknięte. –
- 1. Kompozycja o tej samej właściwości, ale o różnych parametrach typu:
- 2. Jak odwołać wartości o tej samej nazwie z różnych modułów
- 3. Swift - dostać referencję do funkcji o tej samej nazwie, ale o różnych parametrach
- 4. Kilka pól wyboru o tej samej nazwie
- 5. Android Gradle moduły o tej samej nazwie
- 6. Funkcja i zmienna o tej samej nazwie
- 7. Metoda nadpisywania Jython o tej samej nazwie
- 8. PHP nieaktualne: Metody o tej samej nazwie
- 9. Typedef i enum o tej samej nazwie?
- 10. Excel.Workbook.SaveAs (...) z plikiem o tej samej nazwie
- 11. Rozmieszczanie dwóch różnych gier! aplikacje na tej samej nazwie hosta
- 12. Niejednoznaczne gdy dwa superklasy posiada funkcję składową o tej samej nazwie, ale różnych podpisów
- 13. W jaki sposób WZP może rozpoznać dwie klasy o tej samej nazwie, ale w różnych pakietach?
- 14. Entity Framework Code First - dwa podmioty o tej samej nazwie, ale w różnych przestrzeniach nazw
- 15. Amazon S3 unikaj nadpisywania obiektów o tej samej nazwie
- 16. Zapobieganie wielu instancjom na serwerze o tej samej nazwie użytkownika
- 17. Definiowanie tego samego komponentu Spring bean o tej samej nazwie
- 18. Katalog bezwersyjny SVN o tej samej nazwie już istnieje
- 19. Zignoruj wszystkie pliki o tej samej nazwie w git
- 20. SVN: wersjonowany katalog o tej samej nazwie już istnieje
- 21. PHP Przesyłanie i nadpisywanie pliku o tej samej nazwie
- 22. Selen - lokalizowanie wielu elementów o tej samej nazwie klasy
- 23. Elementy formularza o tej samej nazwie odzwierciedlone w DOM
- 24. struct z tej samej nazwie, ale innym członka w C++
- 25. Praca w git z katalogami o tej samej nazwie, ale innym przypadku w systemie Windows
- 26. Używanie dwóch bibliotek DLL o tej samej nazwie i tej samej przestrzeni nazw
- 27. Jak wybrać zmienne (bez tekstu) o tej samej nazwie?
- 28. Jak mogę załadować dwa zadania zadawania o tej samej nazwie?
- 29. Ukrywanie wszystkich elementów o tej samej nazwie klasy?
- 30. Wykrywanie liczby uruchomionych procesów o tej samej nazwie
Jeśli ścieżka może potencjalnie zawierać 6 różnych wartości, powinienem użyć 6x document.cookie z właściwą ścieżką? – JKown
@JKown Zasadniczo. Chociaż sugerowałbym zapętlenie ścieżek, więc masz tylko 1 instrukcję 'document.cookie'. Zobacz moją edycję dla jednej opcji. –
Dzięki, to działa dla mnie. – JKown