Javascript e Cookies

Para gravar dados do computador do usuário os sites usam cookies e exitem muitas funções já prontas na internet que fazem o trabalho que gravar um cookie ou para obter o valor gravado em um cookie.

Quase todos os exemplos que encontrei na internet, divide o trabalho em duas funções diferentes, em geral, algo como: setCookie e getCookie.

Cada uma destas funções tem os seus próprios parâmetros, a função setCookie, por exemplo precisa receber o nome do cookie a ser gravado, o valor e a data de validade.

O meu trabalho foi unificar as funções em uma única, tentei fazer um trabalho um pouco mais elegante do que usar split, substring e charAt, assim: RegExp.

A função unificada funciona tanto para gravar um valor quanto para obter o valor de um cookie. A idéia básica é: quando o parâmetro valor for usado, este será gravado no cookie, caso contrário deseja-se obter o valor atual.

/**
* Set/Retrieve a cookie
* To get a cookie to call: cookie(‘COOKIE_NAME’);
* To set/update a cookie call: cookie(‘COOKIE_NAME’, ‘COOKIE_VALUE’, ”);
* Expire time:
* – ‘1d’ to indicate expire in one day
* – ‘1h’ to indicate expire in one hour
* – ‘1m’ to indicate expire in one minute
* – defaults to one day.
*/
function cookie(name, value, expire){
if(name && value){
var cookie = [name, '=', value];
if(expire){
var e = {_m:60*1000, _h:60*60*1000, _d:24*60*60*1000, _:60*60*1000};
var params = /(\d*)(\w*)/.exec(expire);
var d = new Date();
d.setTime(d.getTime()+(params[1]*e['_'+params[2].toLowerCase()]));
cookie.push(‘; expires=’+d.toGMTString()+’; path=/’);
}
return document.cookie = escape(cookie.join(”));
}else if(name){
var reg = new RegExp(‘(‘+name+’=)(\\d*[^;]*)’).exec(unescape(document.cookie));
return reg?reg[2]:undefined;
}
return false;
}

Digg this     Create a del.icio.us Bookmark     Add to Newsvine

No Responses to “Javascript e Cookies”

No comments yet

Leave a Reply