Jun 23

Acessando QueryStrings por Javascript

Tag: Javascriptdavid @ 8:52 pm

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.

Deixe um comentário