J'ai une balise d'ancrage qui a une valeur href locale, et une fonction JavaScript qui utilise la valeur href mais la dirige vers un endroit légèrement différent de celui où elle devrait normalement aller. La balise ressemble à
<a onclick="return follow(this);" href="sec/IF00.html"></a>
et une fonction JavaScript qui ressemble à
baseURL = 'http://www.someotherdomain.com/';
function follow(item) {
location.href = baseURL + item.href;
}
Je m'attendrais à ce que item.href
ne renverrait que la chaîne courte "sec/IF00.html", mais au lieu de cela, il renvoie le href complet, "http://www.thecurrentdomain.com/sec/IF00.html". Existe-t-il un moyen d'extraire uniquement l'adresse courte telle que définie dans l'ancre ? <a>
étiquette ? Ou est-ce que je perds cela par le comportement naturel du HTML ?
Je suppose que je pourrais utiliser une manipulation de chaîne pour faire cela, mais cela devient délicat parce que ma page locale peut en fait être "http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html", et mon champ href peut ou non contenir un sous-répertoire (par ex. href="page.html"
vs. href="sub/page.html"
), je ne peux donc pas toujours supprimer tout ce qui se trouve avant la dernière barre oblique.
Vous vous demandez peut-être pourquoi je demande cela, et c'est parce que cela rendra la page beaucoup plus propre. S'il n'est pas possible d'obtenir seulement le href court (tel que mis dans l'ancre <a>
), je pourrais probablement insérer un champ supplémentaire dans la balise, comme suit link="sec/IF00.html"
mais là encore, ce serait un peu plus compliqué.