jquery - obtener - cómo configurar esta cookie para que nunca caduque
limpiar cookies jquery (2)
Tengo una función para crear una cookie que pasa el nombre, el valor y la caducidad (en días) de la cookie.
Aquí está la función:
function setCookie(c_name,value,exdays) {
var exdate=new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value=escape(value) + ((exdays==null) ? "" : ";
expires="+exdate.toUTCString());
document.cookie=c_name + "=" + c_value;
}
function getCookie(c_name) {
var i,x,y,ARRcookies=document.cookie.split(";");
for (i=0;i<ARRcookies.length;i++) {
x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
x=x.replace(/^/s+|/s+$/g,"");
if (x==c_name) {
return unescape(y);
}
}
}
La función funciona como se esperaba, pero ¿qué debo hacer para establecer que la cookie nunca caduque?
La variable exdays
es el tiempo que exdays
hasta que caduca la cookie, solo establezca ese valor en un par de miles de días en su llamada a la función.
setCookie(''cookiename'', ''cookievalue'', 10000); //expires in 10k days
No hay forma de configurar para que never expire
. No es una limitación de javascript, simplemente no es parte de la especificación de la cookie http://www.faqs.org/rfcs/rfc2965.html .
Puede establecer una fecha lejana en el futuro. por ejemplo, para configurarlo en 20 años a partir de ahora, llame a setCookie
con 20*365
como parámetro de exdays
mientras exdays
setCookie
espere cuántos días antes de que caduque. Como sigue
setCookie(''cookiename'',''cookie_val'',20*365);