HTMLeando: para desarrolladores Web

Pregunta


¿Cómo eliminar una cookie usando Javascript? 

Responder esta pregunta por dudin el 2009-07-07
Necesito eliminar una cookie mediante Javascript pues de lo contrario tendría que hacer una nueva petición http para usar PHP.

Respuestas

Thumb_up
Thumb_down

0%
0%
Partiendo de la siguiente clase javascript:
var Cookie = {
	set: function(name,value,seconds){
		if(seconds){
			d = new Date();
			d.setTime(d.getTime() + (seconds * 1000));
			expiry = '; expires=' + d.toGMTString();
		}else
			expiry = '';
		document.cookie = name + "=" + value + expiry + "; path=/";
	},
	get: function(name){
		nameEQ = name + "=";
		ca = document.cookie.split(';');
		for(i = 0; i < ca.length; i++){
			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
	},
	unset: function(name){
		Cookie.set(name,'',-1);
	}
}


Para poner una variable:
Cookie.set('nombre','valor', 86400);

Mientras que para vaciar la variable sería:
Cookie.unset('nombre');
por Anónimo el 2009-07-07

Thumb_up
Thumb_down

0%
0%
Otra posible solución mediante funciones:
function getCookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}
 
function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}
 
function deleteCookie( name, path, domain ) {
	if ( getCookie( name ) ) document.cookie = name + '=' +
			( ( path ) ? ';path=' + path : '') +
			( ( domain ) ? ';domain=' + domain : '' ) +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}


Ejemplo de uso:
 
// Párametros para setCookie
// nombre, valor, expira, camino, dominio, seguro
setCookie( 'test', 'mi valor', '', '/', '', '' );
if ( getCookie( 'test' ) ) alert( getCookie('test'));
 
// Párametros para deleteCookie
// nombre, camino, dominio
// Asegúrese de usar los mismos parámetros en  setCookie y deleteCookie.
deleteCookie('test', '/', '');
( getCookie( 'test' ) ) ? alert( getCookie('test')) :
alert( 'No existe');
 
por maikel el 2009-07-07

Anónimo:   Entrar


Consejo: Sé tan específico y descriptivo como puedas. Comparte tu experiencia personal o tus conocimientos.
Puedes investigar para completar tu respuesta.

Puedes poner directamente trozos de código usando las etiquetas [code=php] y [/code] o incrustar desde Snipplr.com [snippet=id_snippet]

Compartir: WebeameMeneame Delicious Digg

Preguntas relacionadas