Récupérer les paramètres d’une URL en JavaScript

 Article modifié dernièrement le 23 Août 2011 @ 15 h 20 min

Vous ne vous êtes jamais demandé à quoi servait tous ces paramètres incompréhensibles dans les URL que vous saisissez pour vous rendre sur tel ou tel site ou page Web ? pour s’en rendre compte je vous invite à regarder attentivement l’URL générée par Google lors de vos recherches.

Finalement c’est assez simple à comprendre, les paramètres d’une URL servent simplement à transmettre des variables au script ou document cible, particulièrement utilisés dans les sites Web dynamiques.

Rappel

Les URL (Uniform Resource Locator) sont les chemins d’accès aux différentes ressources sur Internet. Ils sont utilisés pour identifier les pages et sites Web et permettent d’accéder à n’importe quel document. Ces chemins sont communément appelées « adresses Web ».

Syntaxe (protocole http)

Le caractère ? indique que la suite de l’URL sont des paramètres et ne font pas partie du nom de fichier cible. Le caractère = sépare un nom de paramètre de sa valeur. Le caractère & sépare deux couples (nom, valeur).

Exemple

Dans cet exemple on transmet deux variables au script index.jsp : $menu de valeur « deck » et $id de valeur « 75 ».

Méthode classique

De prime à bord ça ne semble pas très compliqué grâce à la fonction split qui nous permet d’isoler les valeurs de part et d’autre d’un séparateur, dans notre cas les séparateurs sont & et =.

Voici donc une façon simple qui permet de récupérer les paramètres d’une URL en JavaScript sous la forme d’un tableau associatif (clé => valeur) :

Méthode avancée

Qu’en est-il lorsque les valeurs des variables à transmettre comportent des & ? comme par exemple :

Le script précédent ne fonctionne plus, il faut un peu ruser pour contourner le problème, voici la façon que j’ai trouvé qui m’a permis d’avancer :

Trois flèches vers le bas

1- Logiciel de brouillage d’adresse IP :

Contourner la censure en surfant anonyme

2- L’article explicatif :

La différence entre un proxy et un VPN

3- Comment espionner un smartphone (app) :

L’application de référence

Commentez ici

  • Greg 23 août 2011, 15 03

    Il m’arrive d’utiliser la fonction &gl=us ou &gl=fr dans les résultats de Google. Ces résultats sont régionalisés et en fonction du pays de recherche, les résultats sont différents.

  • Alekss 23 août 2011, 15 03

    Les caractères de type « & » sont urlencodés lors de la soumission d’un formulaire, c’est un faux problème non ?
    Exemple : lors de la recherche google de la même query « Chippy & Matthew Wilson », on voit bien dans la query « Chippy+%26+Matthew+Wilson »

    L’exercice reste intéressant 🙂

  • Mimie 23 août 2011, 16 04

    @Alekss : Tu as raison lors de la soumission d’un formulaire, moi je pensais plus à un lien hypertexte qui contiendrait déjà ce genre de caractère (& ou & amp;)

  • Alekss 23 août 2011, 16 04

    Effectivement. Mais Il fut un temps où les navigateur URLencodait les liens hypertextes à la volée. A près tests, seul IE continue à le faire (du moins visible dans l’URL).

    Personnellement,je pense que si le lien hypertexte est généré, il est préférable de l’URLencoder pour éviter ce type de manipulation côté client. Si on n’a pas la main dessus, le script est bienvenue !

Article suivant:

Article précédent:

Share This