borrame.com - Colección particular de recortes de código y documentación para programación web

Lo más fresco

  1. Cadena aleatoria en PHP (¡ahora también multi-byte!) Modificado
  2. Cookies en JavaScript Modificado
  3. Reiniciar Apache con cuidado (graceful restart) Modificado

Sugerencias del chef

Lo más visitado

  1. Dar formato a un número
  2. Fecha y hora
  3. Cookies
  4. Rotar logs en Windows
  5. Reiniciar Apache con cuidado (graceful restart)

Cookies en JavaScript

Con estas tres funciones, las cookies en JavaScript están chupadas. A tener en cuenta:

/**
 * Crea una cookie - nombre [valor] [duracion (s)] [ruta] [dominio] [segura (bool)]
 *
 * Notas:
 * - Si no se indica duración (o se establece a false) la cookie se borra al salir
 * - Si no se indica una ruta se asigna la del documento donde ejecutamos el script
 */

function escribirCookie(nombre, valor, duracion, ruta, dominio, segura){ // v2010-03-26
    if(duracion){
        var expires = new Date();
        expires.setUTCMilliseconds(expires.getUTCMilliseconds() + 1000*duracion);
    }

    document.cookie = escape(nombre) + "=" + (valor? escape(valor) : "") +
        (expires ? "; expires=" + expires.toGMTString() : "") +
        (ruta    ? "; path="    + escape(ruta) : "") +
        (dominio ? "; domain="  + escape(dominio) : "") +
        (segura  ? "; secure" : "");
}


/**
 * Elimina la cookie indicada
 */

function borrarCookie(nombre){ // v2010-03-26
    escribirCookie(nombre, "", -86400*365*10);
}


/**
 * Devuelve el valor de la cookie indicada o null si no existe
 */

function leerCookie(nombre){ // v2010-03-26
    var re = new RegExp("^(" + escape(nombre) + ")=(.*)$", "i");
    var c = document.cookie.split(/;\s*/);

    for(var i in c){
        if(re.test(c[i])){
            return unescape(re.exec(c[i])[2]);
        }
    }
    return null;
}

Historial

v2010-03-26
Comentarios mejorados.
v2009-01-16
Eliminar el eval() que puse cuando era joven e inexperto.
Dar una manita de pintura.
v2005-02-27 / v2005-03-02
Primera versión.

Esta página ha sido impresa el jueves 29 de julio de 2010 (21:26:31 +0200) desde http://borrame.com/recortes/javascript/cookies.html. La última vez que miré contenía HTML válido con CSS fresquito y si tiene flatas de ortografía ha sido sin querer.

borrame.com es el sitio anteriormente conocido como bits.demogracia.com (no confundir con Demogracia, que sólo pasaba por ahí).

© 2005-2010 by Álvaro G. Vicario (alvaro.es) • Burgos (España) • borrame.com