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;
}