Gestire i cookie con Javascript
Piccola premessa: a mio modo di vedere è sempre meglio gestire i cookie lato server (Asp.NET, PHP, Java,....).
Però a volte capita che si debba gestirli con Javascript (magari delegando solo informazioni meno importanti).
Vediamo tre funzioni da mettere nell'header.
La prima serve per settarli:
function setCookie(name, value, expiredays, path, domain, secure) {
var expires = new Date();
expires.setDate(expires.getDate() + expiredays);
var cookieString = name + "=" + escape(value) + ((expires) ? ";expires=" + expires.toGMTString() : "") + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ((secure) ? ";secure" : "");
document.cookie = cookieString;
}
Alla funzione passiamo un pò di parametri che con i quali costruiremo il cookie (var cookieString).
Il cookie si crea grazie a document.cookie.
Richiamndo questa funzione creeremo un cookie con le varie info passate; notate che in caso alcune info non vengono settate, verranno settate come vuote.
Altra funzione importante è quella per reperire le varie info settate:
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)));
}
Questa funzione vi mostra con un alert le varie info recuperate, passandogli il nome come unico argomento.
Nel caso in cui il cookie non venga trovato e il nome sia nullo la funzione non ritorna niente.
Infine la funzione per cancellarli:
function delCookie(name, path, domain) {
if (getCookie(name)) {
document.cookie = name + "=" + ((path) ? ";path=" + path : "") + ((domain) ? ";domain=" + domain : "") + ";expires=Thu, 01-Jan-70 00:00:01 GMT";
}
}
Per cancellare un cookie si deve impostare una data passata.
Alla funzione passiamo tre argomenti; se esiste un cookie con quel nome gli diamo una data passata.
Ciao!!
cookie javascript document.cookie
Commentami!