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";
}
}
Perhatikan bahwa kode ini memiliki dua batasan:
- Itu tidak akan menghapus cookie dengan
HttpOnly
set flag, karena HttpOnly
flag menonaktifkan akses Javascript ke cookie.
- Itu tidak akan menghapus cookie yang telah ditetapkan dengan suatu
Path
nilai. (Ini terlepas dari kenyataan bahwa cookie itu akan muncul document.cookie
, tetapi Anda tidak dapat menghapusnya tanpa menentukan nilai yang sama Path
dengan yang ditetapkan.)
name = ""
, untuk menghapus nilai tanpa nama.trim()
ruang tambahan atausplit('; ')
(oleh ';') untuk membuatnya berfungsi dengan baik. Saya telah mengusulkan hasil edit.Satu liner
Jika Anda ingin menempelkannya dengan cepat ...
Dan kode untuk bookmarklet:
sumber
localStorage
window.localStorage.clear()
Dan ini satu untuk menghapus semua cookie di semua jalur dan semua varian domain (www.mydomain.com, mydomain.com dll):
sumber
Setelah sedikit frustrasi dengan ini saya sendiri mengetuk fungsi ini yang akan mencoba untuk menghapus cookie bernama dari semua jalur. Panggil saja ini untuk setiap cookie Anda dan Anda harus lebih dekat untuk menghapus setiap cookie dari sebelumnya.
Seperti biasa browser yang berbeda memiliki perilaku yang berbeda tetapi ini bekerja untuk saya. Nikmati.
sumber
Jika Anda memiliki akses ke plugin jquery.cookie , Anda dapat menghapus semua cookie dengan cara ini:
sumber
Sejauh yang saya tahu tidak ada cara untuk menghapus semua cookie yang ditetapkan di domain. Anda dapat menghapus cookie jika Anda tahu nama dan jika skrip berada pada domain yang sama dengan cookie.
Anda dapat mengatur nilai menjadi kosong dan tanggal kedaluwarsa di suatu tempat di masa lalu:
Ada artikel yang sangat bagus di sini tentang memanipulasi cookie menggunakan javascript.
sumber
document.cookie="username;expires=" + new Date(0).toGMTString()
- tidak banyak perbedaan jika cookie berakhir 1 detik yang lalu atau pada tahun 1970Lebih sederhana. Lebih cepat.
sumber
Jawaban dipengaruhi oleh jawaban kedua di sini dan W3Schools
Tampaknya bekerja
sunting: wow hampir persis sama dengan Zach yang menarik bagaimana Stack Overflow menempatkan mereka di samping satu sama lain.
sunting: nvm yang tampaknya sementara
sumber
Kupikir aku akan berbagi metode ini untuk menghapus cookie. Mungkin itu mungkin bermanfaat untuk orang lain di beberapa titik.
sumber
Anda bisa mendapatkan daftar dengan melihat variabel document.cookie. Membersihkan mereka semua hanya masalah perulangan mereka semua dan membersihkan mereka satu per satu.
sumber
Saya tidak tahu mengapa jawaban pilihan pertama tidak berhasil untuk saya.
Seperti yang dikatakan jawaban ini :
Jadi ide saya adalah menambahkan kontrol versi Cookie dengan set lengkap pengaturan, mendapatkan, menghapus cookie:
sumber
let expireTime = now.getTime();
now.setTime(expireTime);
document.cookie =document.cookie+';expires='+now.toUTCString()+';path=/';
akan menghapus cookie.Saya memiliki beberapa modul kontrol cookie yang lebih canggih dan berorientasi OOP. Ini juga berisi
deleteAll
metode untuk menghapus semua cookie yang ada. Perhatikan bahwa versideleteAll
metode ini memiliki pengaturanpath=/
yang menyebabkan penghapusan semua cookie dalam domain saat ini. Jika Anda hanya perlu menghapus cookie dari beberapa ruang lingkup, Anda harus meningkatkan metode ini dengan menambahkanpath
parameter dinamis saya ke metode ini.Ada
Cookie
kelas utama :Metode cookie setter (
Cookie.set
) agak rumit sehingga saya mendekomposisikannya ke kelas lain. Ada kode yang ini:sumber
Berikut adalah kode sederhana untuk menghapus semua cookie di JavaScript .
Jalankan fungsi
deleteAllCookies()
untuk menghapus semua cookie.sumber
Pendekatan Fungsional + ES6
sumber
sumber
Setelah menguji hampir semua metode yang terdaftar dalam berbagai gaya browser pada banyak gaya cookie, saya menemukan hampir tidak ada yang bekerja di sini bahkan 50%.
Tolong bantu mengoreksi sesuai kebutuhan, tapi saya akan melemparkan 2 sen saya di sini. Metode berikut memecah semuanya dan pada dasarnya membangun string nilai cookie berdasarkan pada kedua bagian pengaturan serta termasuk langkah demi langkah membangun string path, dimulai dengan
/
tentu saja.Semoga ini bisa membantu orang lain dan saya harap kritik apa pun bisa datang dalam bentuk menyempurnakan metode ini. Pada awalnya saya ingin 1-liner sederhana seperti yang dicari beberapa orang lain, tetapi cookie JS adalah salah satu hal yang tidak mudah ditangani.
sumber
Jquery:
vanilla JS
sumber
Saya menemukan masalah di IE dan Edge. Browser Webkit (Chrome, safari) tampaknya lebih mudah memaafkan. Saat mengatur cookie, selalu atur "path" ke sesuatu, karena default akan menjadi halaman yang mengatur cookie. Jadi, jika Anda mencoba untuk kedaluwarsa pada halaman yang berbeda tanpa menentukan "path", path tidak akan cocok dan tidak akan kedaluwarsa. Itu
document.cookie
nilai tidak menunjukkan jalan atau kedaluwarsa untuk cookie, sehingga Anda tidak dapat memperoleh mana cookie ditetapkan dengan melihat nilai.Jika Anda perlu kedaluwarsa cookie dari halaman yang berbeda, simpan jalur halaman pengaturan dalam nilai cookie sehingga Anda dapat menariknya nanti atau selalu menambahkan
"; path=/;"
nilai cookie. Maka akan kedaluwarsa dari halaman mana pun.sumber