Obtenez de l'URI complète de la href propriété d'un lien
Je voudrais avoir une confirmation sur un point.
Mon objectif est toujours d'obtenir la même chaîne (qui est l'URI dans mon cas) lors de la lecture href propriété à partir d'un lien. Exemple:
<a href="test.htm" />
avec base_url = http://domain.name/
<a href="../test.htm" />
avec base_url = http://domain.name/domain/
<a href="http://domain.name/test.htm" />
avec base_url = n'importe quel dossier de http://domain.name/
J'ai besoin d'obtenir http://domain.name/test.htm
à partir de la 3 situations ci-dessus (ou tout autre chaîne identique).
Après quelques tests, il semble que my_a_dom_node.href
toujours le retour au plein-qualifiés URI, y compris la http://domaine.name, qui devrait être d'accord pour ce que je veux.
jQuery a un comportement différent et $(my_a_dom_node).attr('href')
renvoie le contenu (texte) qui apparaît à l'intérieur du HTML. Donc mon astuce est d'utiliser $(my_a_dom_node).get(0).href
pour obtenir l'URI complète.
La question est: peut-on s'y fier?
- BTW:
$(my_a_dom_node).get(0).href
==$(my_a_dom_node)[0].href
Vous devez vous connecter pour publier un commentaire.
OUI, vous pouvez compter!
Une fois quand les gens a l'aide de javascript simple (pas de jQuery) de nombreuses personnes ont demandé à l'opposé de ce que vous demandez, ils voulaient obtenir l'url réelle comme écrit dans l'attribut href et pas le plein, dans ce cas, ils ont utilisé pour le faire simplement:
Puis il est venu jQuery qui ont aidé les gens à ne pas perdre leur temps à trouver qu'ils auraient besoin d'un tel code et jQuery retourne toujours l'url réelle comme écrit dans l'attribut href.
C'est drôle que maintenant, quelqu'un demande comment faire pour obtenir l'adresse url complète parce que jQuery retourne celle qui est écrite dans l'attribut href.
2
?getAttribute
n'a qu'un seul argument.Je sais que c'est une vieille question, mais ce qui est en fait la première entrée qui est apparu, je crois qu'il est bon d'ajouter une solution supplémentaire. Depuis jQuery introduit la "prop", d'obtenir l'URL complète est aussi simple que:
J'espère que encore de l'aide à quelqu'un.
Oui, vous pouvez compter sur cela.
À la recherche par le biais de l'jQuery (1.4.2) le code source, je vois le
jQuery.attr()
fonction en cours d'utilisation (résumé pour les parties pertinentes):Donc iteffectively appels
elem.getAttribute('href')
qui retourne la vraie valeur de l'attribut, tandis que lehref
de la propriété par la conception renvoie l'URL canonique.Cependant, il est une référence à
jQuery.support.hrefNormalized
, dont la prise en charge jQuery site est-à-dire:Cela signifie essentiellement que jQuery découvre comportement du navigateur sur son propre et s'adapte en conséquence de fournir un résultat uniforme.
Vous pourrait recomposer la totalité de l'url à l'aide d'un peu de javascript :