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";
}
}
Pamiętaj, że ten kod ma dwa ograniczenia:
- Nie usunie plików cookie z
HttpOnly
ustawioną flagą, ponieważ HttpOnly
flaga wyłącza dostęp Javascript do pliku cookie.
- Nie usunie plików cookie, które zostały ustawione z
Path
wartością. (Dzieje się tak pomimo faktu, że te pliki cookie pojawią się w document.cookie
, ale nie można ich usunąć bez podania tej samej Path
wartości, z jaką zostały ustawione).
name = ""
, aby usunąć bezimienną wartość.trim()
dodatkowego miejsca lubsplit('; ')
(przez „;”), aby działało poprawnie. Zaproponowałem edycję.Jedna wkładka
Jeśli chcesz szybko wkleić ...
I kod dla bookmarkletu:
źródło
localStorage
SOwindow.localStorage.clear()
mogą być pomocne takżeI tutaj jest jeden, aby wyczyścić wszystkie pliki cookie we wszystkich ścieżkach i wszystkich wariantach domeny (www.mydomain.com, mydomain.com itp.):
źródło
Po odrobinie frustracji z tego powodu podłączyłem tę funkcję, która spróbuje usunąć nazwane ciasteczko ze wszystkich ścieżek. Po prostu zadzwoń do tego dla każdego z twoich ciasteczek, a powinieneś być bliżej usunięcia każdego ciasteczka niż byłeś wcześniej.
Jak zawsze różne przeglądarki mają różne zachowania, ale działało to dla mnie. Cieszyć się.
źródło
Jeśli masz dostęp do wtyczki jquery.cookie , możesz usunąć wszystkie pliki cookie w ten sposób:
źródło
O ile mi wiadomo, nie ma możliwości całkowitego usunięcia jakiegokolwiek pliku cookie ustawionego w domenie. Możesz usunąć plik cookie, jeśli znasz nazwę i skrypt jest w tej samej domenie co plik cookie.
Możesz ustawić wartość pustą, a datę wygaśnięcia gdzieś w przeszłości:
Jest tutaj doskonały artykuł na temat manipulowania plikami cookie za pomocą javascript.
źródło
document.cookie="username;expires=" + new Date(0).toGMTString()
- niewiele różnicy, jeśli plik cookie wygasa 1 sekundę temu lub w 1970 rokuProstsze Szybciej.
źródło
Odpowiedź pod wpływem zarówno drugiej odpowiedzi tutaj, jak i W3Schools
Wydaje się, że działa
edycja: wow prawie dokładnie tak samo jak ciekawe Zacha, jak Stack Overflow umieścił je obok siebie.
edit: nvm, który najwyraźniej był tymczasowy
źródło
Pomyślałem, że podzielę się tą metodą czyszczenia plików cookie. Być może w pewnym momencie może to być pomocne dla kogoś innego.
źródło
Możesz uzyskać listę, zaglądając do zmiennej document.cookie. Usunięcie ich wszystkich polega na zapętleniu ich wszystkich i wyczyszczeniu ich jeden po drugim.
źródło
Nie wiem, dlaczego pierwsza głosowana odpowiedź nie działa dla mnie.
Jak powiedziała ta odpowiedź :
Więc moim pomysłem jest dodanie kontroli wersji plików cookie z pełnym zestawem ustawień, pobierania i usuwania plików cookie:
źródło
let expireTime = now.getTime();
now.setTime(expireTime);
document.cookie =document.cookie+';expires='+now.toUTCString()+';path=/';
usunie pliki cookie.Mam bardziej wyrafinowany i zorientowany na OOP moduł kontroli plików cookie. Zawiera także
deleteAll
metodę usuwania wszystkich istniejących plików cookie. Zwróć uwagę, że ta wersjadeleteAll
metody ma ustawienie,path=/
które powoduje usunięcie wszystkich plików cookie w bieżącej domenie. Jeśli chcesz usunąć pliki cookie tylko z pewnego zakresu, musisz zaktualizować tę metodę, dodającpath
parametr dynamiczny do tej metody.Jest główna
Cookie
klasa:Metoda ustawiania plików cookie (
Cookie.set
) jest dość złożona, więc rozłożyłem ją na inne klasy. Jest kod tego:źródło
Oto prosty kod, aby usunąć wszystkie pliki cookie w JavaScript .
Uruchom funkcję,
deleteAllCookies()
aby usunąć wszystkie pliki cookie.źródło
Podejście funkcjonalne + ES6
źródło
źródło
Po przetestowaniu prawie zawsze metody wymienionej w wielu stylach przeglądarek na wielu stylach plików cookie, prawie nie ma tu nic, nawet 50%.
Proszę o pomoc w razie potrzeby, ale wrzucę tutaj moje 2 centy. Poniższa metoda rozkłada wszystko i w zasadzie buduje ciąg wartości cookie na podstawie obu elementów ustawień, a także obejmuje krok po kroku kompilację ciągu ścieżki, zaczynając
/
od oczywiście.Mam nadzieję, że to pomaga innym i mam nadzieję, że każda krytyka może przybrać formę udoskonalenia tej metody. Na początku chciałem prosty 1-liniowy, jak niektórzy szukali, ale ciasteczka JS są jedną z tych rzeczy, z którymi nie tak łatwo sobie poradzić.
źródło
Jquery:
waniliowy JS
źródło
Znalazłem problem w IE i Edge. Przeglądarki Webkit (Chrome, safari) wydają się bardziej wyrozumiałe. Ustawiając pliki cookie, zawsze ustaw „ścieżkę” na coś, ponieważ domyślnie będzie to strona, która ustawia plik cookie. Jeśli więc spróbujesz wygasnąć na innej stronie bez określenia „ścieżki”, ścieżka nie będzie pasować i nie wygasa. The
document.cookie
Wartość nie pokazuje ścieżkę lub wygaśnięcia cookie, więc nie można czerpać gdzie cookie została ustawiona patrząc na wartości.Jeśli chcesz wygasnąć pliki cookie z różnych stron, zapisz ścieżkę strony ustawień w wartości pliku cookie, abyś mógł ją później pobrać lub zawsze dołączać
"; path=/;"
do wartości pliku cookie. Następnie wygasa z dowolnej strony.źródło