javascript - read - jquery cookie w3
¿Cómo puedo eliminar todas las cookies con JavaScript? (5)
Un trazador de líneas
En caso de que quiera pegarlo rápidamente ...
document.cookie.split(";").forEach(function(c) { document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"); });
Y el código para un bookmarklet:
javascript:(function(){document.cookie.split(";").forEach(function(c) { document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/"); }); })();
Esta pregunta ya tiene una respuesta aquí:
- Borrando todas las cookies con JavaScript 17 respuestas
He escrito un código para guardar las cookies en JavaScript. Ahora necesito borrar las cookies independientemente de los valores que asigné.
¿Hay algún módulo de script para eliminar todas las cookies generadas por Javascript ?
Mi código de muestra:
document.cookie = ''ppkcookie2=another test; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/''
function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else var expires = "";
document.cookie = name+"="+value+expires+"; path=/";
}
function readCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split('';'');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)=='' '') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function eraseCookie(name) {
createCookie(name,"",-1);
}
¿De qué otra forma podría borrar todas las cookies?
¿Habrá algún problema cuando pruebe el código en el servidor web?
¿Por qué usa una nueva fecha en lugar de una cadena UTC estática?
function clearListCookies(){
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++){
var spcook = cookies[i].split("=");
document.cookie = spcook[0] + "=;expires=Thu, 21 Sep 1979 00:00:01 UTC;";
}
}
Esta es una función que estamos usando en nuestra aplicación y está funcionando bien.
eliminar cookie: método sin argumentos
function clearListCookies()
{
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
{
var spcook = cookies[i].split("=");
deleteCookie(spcook[0]);
}
function deleteCookie(cookiename)
{
var d = new Date();
d.setDate(d.getDate() - 1);
var expires = ";expires="+d;
var name=cookiename;
//alert(name);
var value="";
document.cookie = name + "=" + value + expires + "; path=/acc/html";
}
window.location = ""; // TO REFRESH THE PAGE
}
Editar: Esto borrará la cookie al establecerla en la fecha de ayer.
No hay una solución al 100% para eliminar las cookies del navegador.
El problema es que las cookies se identifican de manera única no solo por su "nombre" clave, sino también por su "dominio" y "ruta".
Sin conocer el "dominio" y la "ruta" de una cookie, no puede eliminarla de manera confiable. Esta información no está disponible a través de document.cookie
de JavaScript. ¡No está disponible a través del encabezado HTTP Cookie tampoco!
Sin embargo, si conoce el nombre, la ruta y el dominio de una cookie, puede borrarla estableciendo una cookie vacía con una fecha de caducidad en el pasado, por ejemplo:
function clearCookie(name, domain, path){
var domain = domain || document.domain;
var path = path || "/";
document.cookie = name + "=; expires=" + +new Date + "; domain=" + domain + "; path=" + path;
};
Pero a primera vista parece estar bien: si llama a su eraseCookie () en cada una de las cookies que leyó desde document.cookie
, entonces todas las cookies se habrían ido.
Tal vez algo como esto:
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
eraseCookie(cookies[i].split("=")[0]);
Todo esto con una advertencia:
- JavaScript no puede eliminar las cookies que tienen configurado el indicador HttpOnly.