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";
}
}
Observe que este código tem duas limitações:
- Ele não excluirá os cookies com o
HttpOnly
sinalizador definido, pois o HttpOnly
sinalizador desativa o acesso do Javascript ao cookie.
- Ele não excluirá os cookies que foram definidos com um
Path
valor. (Isso ocorre apesar do fato de esses cookies aparecerem document.cookie
, mas você não pode excluí-lo sem especificar o mesmo Path
valor com o qual foi definido.)
name = ""
para apagar o valor sem nome.trim()
espaço adicional ousplit('; ')
(por ';') para fazê-lo funcionar corretamente. Eu propus uma edição.Um forro
Caso você queira colá-lo rapidamente ...
E o código para um bookmarklet:
fonte
localStorage
tambémwindow.localStorage.clear()
podem ser úteisE aqui está uma para limpar todos os cookies em todos os caminhos e todas as variantes do domínio (www.mydomain.com, mydomain.com etc):
fonte
Depois de um pouco de frustração com isso, reuni essa função que tentará excluir um cookie nomeado de todos os caminhos. Basta chamar isso para cada um de seus cookies e você deve estar mais perto de excluir todos os cookies do que antes.
Como sempre, navegadores diferentes têm comportamentos diferentes, mas isso funcionou para mim. Aproveitar.
fonte
Se você tiver acesso ao plugin jquery.cookie , poderá apagar todos os cookies desta maneira:
fonte
Tanto quanto sei, não há como fazer uma exclusão geral de qualquer conjunto de cookies no domínio. Você pode limpar um cookie se souber o nome e se o script estiver no mesmo domínio que o cookie.
Você pode definir o valor como vazio e a data de validade em algum lugar no passado:
Há um excelente artigo aqui sobre a manipulação de cookies usando javascript.
fonte
document.cookie="username;expires=" + new Date(0).toGMTString()
- não há muita diferença se o cookie expira um segundo atrás ou em 1970Mais simples. Mais rápido.
fonte
Uma resposta influenciada pela segunda resposta aqui e pelo W3Schools
Parece estar trabalhando
edit: wow quase exatamente o mesmo que o interessante de Zach, como Stack Overflow os coloca um ao lado do outro.
edit: NVM temporariamente aparentemente
fonte
Imaginei que compartilharia esse método para limpar cookies. Talvez possa ser útil para outra pessoa em algum momento.
fonte
Você pode obter uma lista consultando a variável document.cookie. Limpá-los todos é apenas uma questão de percorrer todos eles e limpá-los um por um.
fonte
Não sei por que a primeira resposta votada não funciona para mim.
Como esta resposta dizia:
Então, minha ideia é adicionar um controle de versão de cookies com o conjunto completo de configurações, obtenção e remoção de cookies:
fonte
let expireTime = now.getTime();
now.setTime(expireTime);
document.cookie =document.cookie+';expires='+now.toUTCString()+';path=/';
fará com que os cookies sejam removidos.Eu tenho um módulo de controle de cookie mais sofisticado e orientado para OOP. Ele também contém um
deleteAll
método para limpar todos os cookies existentes. Observe que esta versão dodeleteAll
método possui uma configuraçãopath=/
que causa a exclusão de todos os cookies no domínio atual. Se você precisar excluir cookies apenas de algum escopo, precisará atualizar esse método, adicionandopath
parâmetro dinâmico a esse método.Há
Cookie
classe principal :O método setter de cookies (
Cookie.set
) é bastante complexo, então eu o decomponho em outra classe. Existe um código deste:fonte
Aqui está um código simples para excluir todos os cookies em JavaScript .
Execute a função
deleteAllCookies()
para limpar todos os cookies.fonte
Abordagem Funcional + ES6
fonte
fonte
Depois de testar quase sempre o método listado em vários estilos de navegadores em vários estilos de cookies, descobri que quase nada aqui funciona nem 50%.
Por favor, ajude a corrigir conforme necessário, mas eu vou jogar meus 2 centavos aqui. O método a seguir detalha tudo e basicamente cria a cadeia de valor do cookie com base nas partes das configurações, além de incluir uma construção passo a passo da cadeia de caminho, começando com
/
naturalmente.Espero que isso ajude os outros e espero que qualquer crítica possa vir na forma de aperfeiçoar esse método. No começo, eu queria um liner simples como outros procuravam, mas os cookies JS são uma daquelas coisas que não são tão fáceis de lidar.
fonte
Jquery:
JS baunilha
fonte
Encontrei um problema no IE e Edge. Os navegadores Webkit (Chrome, safari) parecem mais tolerantes. Ao configurar cookies, sempre defina o "caminho" como algo, porque o padrão será a página que configurou o cookie. Portanto, se você tentar expirar em uma página diferente sem especificar o "caminho", o caminho não corresponderá e não expirará. o
document.cookie
valor não mostra o caminho ou a expiração de um cookie, portanto, você não pode derivar onde o cookie foi definido olhando o valor.Se você precisar expirar os cookies de páginas diferentes, salve o caminho da página de configuração no valor do cookie para poder retirá-lo mais tarde ou sempre anexá
"; path=/;"
-lo ao valor do cookie. Então ele expirará em qualquer página.fonte