Jun 23
Acessando QueryStrings por Javascript
Dei uma alterada no já manjado código para acessar QueryStrings no client (vez ou outra alguém precisa de algo desse tipo) meu objetivo era não poluir o já super lotado escopo global do browser e tornar o acesso ao hashtable de QueryStrings privado por motivos de segur… nah, tornei privado apenas para brincar com clousures.
Uma coisa legal é que se não existirem QueryStrings eu retorno nada, nem mesmo aquele espaço no document.location.QueryString eu ocupo nesse caso.
document.location.QueryString = (function (){
var params = {};
var qs=location.search.substring(1,location.search.length)
if (qs.length == 0) return
qs = qs.replace(/\+/g, ‘ ‘)
var args = qs.split(’&’);
for (var i=0;i<args.length;i++) {
var value;
var pair = args[i].split(’=');
var name = unescape(pair[0]);
if (pair.length == 2){
value = unescape(pair[1]);
}
else{
value = name;
}
params[name] = value;
}
return function(key){
var value = params[key];
if (value !=null){
return value;
}
}
})();
Depois é só acessar o valor por:
//retorna o valor associado
location.QueryString(”keyName”);
Se alguém perceber algum bug, por favor comente.

