2009-10-11 6 views
41

J'essaie d'écrire un script GreaseMonkey dans lequel je veux trouver tous les liens qui sont des liens relatifs. Il me semblait que le moyen de faire cela serait de faire correspondre le contenu de href avec /^https?:///.Comment obtenir du contenu href "brut" en JavaScript

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

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

accès

document.getElementById("rel").href 

retours

http://example.com/relative/link 

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

Alternativement, y a-t-il un meilleur moyen de trouver des liens relatifs?

+8

Avez-vous essayé element.getAttribute ("href")? –

+0

@Ionut, pourquoi n'avez-vous pas ajouté cela comme réponse? – James

+0

J-P, la question était un peu floue au début. Au moment où j'ai posté mon commentaire, il n'était pas clair s'il essayait d'utiliser la méthode 'getAttribute' ou juste la propriété' href'. –

Répondre

42

Essayez plutôt le getAttribute method.

+1

Malheureusement, IE7 semble renvoyer l'URL complète même avec cette approche. –

24

Typique. Je me suis deviné 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 à taper dans cette réponse qu'il a tout le monde pour y répondre. (Bon sang, vous êtes rapide.)

Questions connexes