Billet du blogue

Parser la query string en Javascript 2

Suite à un commentaire de David Duret sur mon billet intitulé « Parser la query string en Javascript » :

Ce qui serait bien c’est d’améliorer cette fonction en ajoutant une sorte de cache de maniere à ne pas reparser l’url à chaque fois (si on a une dizaine de paramètres ou qu’on utilise beaucoup cette fonction dans une meme page, ca peut « ralentir » un peu son execution, encore que ca ne doit pas être bloquant non plus !)

C’est tout à fait vrai! J’ai donc créer un objet nommé window.querystring :

window.querystring = {
    vars : null,
    parse : function() {
      var q = {};
      var query = window.location.search.substring(1); 
      var vars = query.split("&"); 
      for (var i = 0; i < vars.length; i++) { 
          var pair = vars[i].split("="); 
          q[pair[0]] = pair[1];
      }
      this.vars = q;
    }
}

On peut alors ensuite utiliser l’objet comme ceci :

querystring.parse(); // on initialise l'objet
alert(querystring.vars.foo); // index.php?foo=bar

Vous pouvez utiliser ce code librement, sans avoir à me donner de crédit.

Mise à jour : Si vous utilisez jQuery, le plugin Query String Object est beaucoup plus complet. Il possède, entres autres, une meilleure gestion des types de données et une interface de création de query string.

Posté le et modifié le 19 février 2008 à 13:43 avec les tags: .

Commentaires fermés

Les commentaires pour ce billet ont été désactivés un mois après la date de publication de ce-dernier. Vous désirez exprimer votre opinion sur ce billet malgré le fait que les commentaires aient été désactivés ? Utilisez le formulaire de contact.


Fil atom des commentaires de ce billet1 commentaire

  • Pour qui utilise déjà jQuery dans son projet, oui, il vaut mieux passer par le plugin (que je ne connaissait pas), sinon, joli bout de code :) Encore qu’il serait bien de ne pas avoir à passer par la méthode parse() dans un premier temps, peut-être faut-il passer par une simulation de variable statique comme j’avais pu l’expliquer dans un post situé ici : http://pilgrim.maleo.net/2006/04/variables-statiques-en-javascript . Merci Rémi pour ta bonne utilisation des commentaires :)

    David Duret (19 février 2008 à 14:49 EST)