2012-05-17 10 views
18

Ho una funzione per creare un cookie passando il nome, il valore e la scadenza (in giorni) del cookie.come impostare questo cookie per non scadere mai

Qui è la funzione:

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 funzione funziona come previsto, ma che cosa devo fare per impostare il cookie non scadono mai?

+0

Dupe di http://stackoverflow.com/a/532660/1793718 – Lucky

risposta

10

La variabile exdays indica quanto tempo è trascorso fino alla scadenza del cookie, è sufficiente impostare tale valore su un paio di migliaia di giorni nella chiamata di funzione.

setCookie('cookiename', 'cookievalue', 10000); //expires in 10k days 
28

Non è possibile impostare su never expire. Non è una limitazione javascript, non è solo la parte delle specifiche del cookie http://www.faqs.org/rfcs/rfc2965.html.

È possibile impostare una data lontana in futuro. ad esempio per impostarlo per 20 anni da oggi chiama setCookie con 20*365 come exdays mentre la funzione setCookie si aspetta quanti giorni prima scade. Come segue

setCookie('cookiename','cookie_val',20*365); 
Problemi correlati