1997 votes

Obtenir l'URL actuelle avec jQuery ?

J'utilise jQuery. Comment puis-je obtenir le chemin de l'URL actuel et l'affecter à une variable ?

Exemple d'URL :

http://localhost/menuname.de?foo=bar&number=0

1 votes

Vous pouvez également voir tech-blog.maddyzone.com/javascript/

4 votes

Je pense que la question devrait être ramenée à la demande de jQuery, puisqu'il y a une réponse pour cela, indépendamment du fait que jQuery soit nécessaire pour accomplir la tâche.

1 votes

2735voto

Ryan Doherty Points 16448

Pour obtenir le chemin, vous pouvez utiliser :

var pathname = window.location.pathname; // Returns path only (/path/example.html)
var url      = window.location.href;     // Returns full URL (https://example.com/path/example.html)
var origin   = window.location.origin;   // Returns base URL (https://example.com)

82 votes

Propriétés de l'objet de localisation : developer.mozilla.org/fr/DOM/window.location

102 votes

Loin de le tuer, jQuery a donné une nouvelle vie à Javascript. Les nouveaux programmeurs C#/Java comprennent-ils les pointeurs ? Non. En ont-ils besoin ? Pas vraiment, les nouvelles abstractions sont assez puissantes pour que cela n'ait pas d'importance

203 votes

Il n'est pas rare que l'on vous demande "Comment faire XYZ en jQuery" et que la réponse soit du simple javascript. Il se peut que vous sachiez comment faire quelque chose en javascript ordinaire, mais qu'en raison des incohérences du navigateur, vous préfériez le faire à la manière de "jQuery". Je me souviens qu'avant l'apparition de jQuery ou du framework, je vérifiais d'abord le navigateur, puis je faisais ce que je voulais de plusieurs façons. Alors, est-ce que jQuery est en train de tuer le js ordinaire ? oui, Dieu merci, mais il le rend aussi utilisable.

837voto

Boris Guéry Points 23606

Dans le pur style jQuery :

$(location).attr('href');

L'objet location possède également d'autres propriétés, comme l'hôte, le hachage, le protocole et le nom de chemin.

56 votes

Apparemment, l'utilisation de $(location) dans jQuery n'est pas prise en charge et est déconseillée : bugs.jquery.com/ticket/7858

10 votes

@Peter Bug fermé car invalide.

22 votes

@mc10 : La partie "invalide" s'applique à la demande de prise en charge de $(location) ; ceci ne devrait PAS être utilisé.

502voto

rizon Points 2751
http://www.refulz.com:8082/index.php#tab2?foo=789

Property    Result
------------------------------------------
host        www.refulz.com:8082
hostname    www.refulz.com
port        8082
protocol    http:
pathname    index.php
href        http://www.refulz.com:8082/index.php#tab2
hash        #tab2
search      ?foo=789

var x = $(location).attr('<property>');

Cela ne fonctionnera que si vous disposez de jQuery. Par exemple :

<html>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script>
  $(location).attr('href');      // http://www.refulz.com:8082/index.php#tab2
  $(location).attr('pathname');  // index.php
</script>
</html>

15 votes

C'est la même explication que celle qui précède, mais avec tous les éléments de l'objet. Bonne réponse.

7 votes

Devrait être /index.php au lieu de index.php pour le nom du chemin.

76voto

jlfenaux Points 1413

Si vous avez besoin des paramètres de hachage présents dans l'URL, window.location.href peut être un meilleur choix.

window.location.pathname
=> /search

window.location.href 
 => www.website.com/search#race_type=1

3 votes

Si quelqu'un n'a besoin que d'une balise de hachage, il peut appeler window.location.href.

18 votes

Je pense que @AmitPatel veut dire window.location.hash

58voto

clawr Points 4043

Vous devez utiliser la fonction intégrée de JavaScript. window.location objet.

3 votes

Ceci ne retournera pas les éléments après '?' dans la localisation.

0 votes

@majidgeek fonctionne pour moi dans Firefox, Chrome, et IE. Pouvez-vous fournir un cas de test de cette rupture ?

4 votes

Peut confirmer, au moins dans la console, que window.location.pathname ne récupère rien après le ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X