web-dev-qa-db-fra.com

Comment obtenir du contenu href "brut" en JavaScript

J'essaie d'écrire un script GreaseMonkey dans lequel je veux trouver tous les liens qui sont des liens relatifs. Il me semblait que la façon de procéder serait de faire correspondre le contenu de href à /^https?:///.

Mais je trouve que lorsque j'accède à l'attribut href de l'ancre, il est toujours normalisé ou cuit dans une forme qui contient "http". Autrement dit, si le HTML contient:

<a id="rel" href="/relative/link">inner</a>

accès

document.getElementById("rel").href

retour

http://example.com/relative/link

Comment puis-je accéder aux données brutes dans l'attribut href?

Sinon, existe-t-il une meilleure façon de trouver des liens relatifs?

56
wfaulk

Essayez plutôt la méthode getAttribute .

57
Gumbo

Typique. Je l'ai compris moi-même presque immédiatement après avoir posté la question.

au lieu de:

anchor.href

utilisation:

anchor.getAttribute("href")

Bien sûr, il m'a fallu plus de temps pour taper cette réponse que tout le monde pour y répondre. (Merde, vous êtes rapide.)

34
wfaulk