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";
}
}
Обратите внимание, что этот код имеет два ограничения:
- Он не будет удалять куки с
HttpOnly
установленным флагом, так как этот HttpOnly
флаг отключает доступ Javascript к куки.
- Он не удаляет файлы cookie, для которых установлено
Path
значение. (Это несмотря на то, что эти файлы cookie появятся в document.cookie
, но вы не можете удалить их, не указав то же Path
значение, с которым они были установлены.)
Роберт Дж. Уокер
источник
name = ""
вместо этого стереть безымянное значение.trim()
дополнительное пространство илиsplit('; ')
(«;»), чтобы он работал правильно. Я предложил изменить.Один лайнер
В случае, если вы хотите быстро вставить его ...
И код для букмарклета:
источник
localStorage
window.localStorage.clear()
И вот один из них, чтобы очистить все куки на всех путях и во всех вариантах домена (www.mydomain.com, mydomain.com и т. Д.):
источник
После небольшого разочарования этим я собрал эту функцию, которая попытается удалить именованный файл cookie со всех путей. Просто назовите это для каждого из ваших куки, и вы должны быть ближе к удалению каждого куки, чем вы были раньше.
Как всегда, разные браузеры ведут себя по-разному, но это работает для меня. Наслаждаться.
источник
Если у вас есть доступ к плагину jquery.cookie , вы можете удалить все файлы cookie следующим образом:
источник
Насколько я знаю, нет никакого способа сделать полное удаление любого файла cookie, установленного в домене. Вы можете очистить куки, если знаете имя и если скрипт находится в том же домене, что и куки.
Вы можете установить значение на пустое и дату истечения где-то в прошлом:
Здесь есть отличная статья о том, как манипулировать cookie-файлами с помощью JavaScript.
источник
document.cookie="username;expires=" + new Date(0).toGMTString()
- не большая разница, если срок действия файла cookie истекает 1 секунду назад или в 1970 годуSimpler. Быстрее.
источник
Ответ под влиянием как второго ответа здесь, так и W3Schools
Кажется, работает
редактировать: вау почти точно так же, как Заку интересно, как Stack Overflow помещает их рядом друг с другом.
редактировать: NVM, который был временным, по-видимому
источник
Думаю, я бы поделился этим методом для очистки куки. Возможно, это может быть полезно для кого-то еще в какой-то момент.
источник
Вы можете получить список, посмотрев в переменную document.cookie. Очистка их всех - это просто цикл по всем из них и очистка их один за другим.
источник
Я не знаю, почему первый проголосовавший ответ не работает для меня.
Как сказал этот ответ :
Поэтому моя идея состоит в том, чтобы добавить контроль версий Cookie с полным набором настроек, получения, удаления файлов cookie:
источник
let expireTime = now.getTime();
now.setTime(expireTime);
document.cookie =document.cookie+';expires='+now.toUTCString()+';path=/';
удалит куки.У меня есть более сложный и ориентированный на ООП модуль управления файлами cookie. Он также содержит
deleteAll
метод для очистки всех существующих файлов cookie. Обратите внимание, что в этой версииdeleteAll
метода есть настройка,path=/
которая вызывает удаление всех файлов cookie в текущем домене. Если вам нужно удалить куки только из какой-то области, вам придется обновить этот метод, мой динамический добавлениеpath
параметр.Есть основной
Cookie
класс:Метод установки cookie (
Cookie.set
) довольно сложен, поэтому я разложил его на другой класс. Вот код этого:источник
Вот простой код для удаления всех файлов cookie в JavaScript .
Запустите функцию,
deleteAllCookies()
чтобы очистить все куки.источник
Функциональный подход + ES6
источник
источник
После тестирования практически всех методов, перечисленных в разных стилях браузеров, на нескольких стилях файлов cookie, я обнаружил, что здесь почти ничего не работает, даже 50%.
Пожалуйста, помогите исправить по мере необходимости, но я собираюсь бросить мои 2 цента здесь. Следующий метод разбивает все на части и в основном строит строку значения cookie на основе обеих частей настроек, а также включает пошаговую сборку строки пути, начиная с
/
конечно, с.Надеюсь, что это поможет другим, и я надеюсь, что любая критика может прийти в виде совершенствования этого метода. Сначала я хотел простой 1-лайнер, как искали некоторые другие, но JS-cookie - это одна из тех вещей, с которыми не так легко разобраться.
источник
Jquery:
ваниль JS
источник
Я нашел проблему в IE и Edge. Браузеры Webkit (Chrome, Safari) кажутся более щадящими. При настройке файлов cookie всегда устанавливайте «путь» к чему-либо, поскольку по умолчанию будет использоваться страница, на которой установлен файл cookie. Поэтому, если вы попытаетесь удалить его на другой странице, не указав «путь», путь не будет совпадать и срок его действия не истечет.
document.cookie
Значение не показывает путь или истечения срока для печенья, так что вы не можете получить , где куки был установлен , глядя на значение.Если вам нужно удалить файлы cookie с разных страниц, сохраните путь к странице настроек в значении cookie, чтобы вы могли извлечь его позже или всегда добавить
"; path=/;"
к значению cookie. Тогда он истекает с любой страницы.источник