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 auquel elle irait normalement. 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
cela renvoie simplement une courte chaîne de "sec / IF00.html", mais à la place, il renvoie le href complet, "http://www.thecurrentdomain.com/sec/IF00.html". Existe-t-il un moyen de retirer uniquement le href court comme inséré dans l' <a>
étiquette d' ancrage ? Ou est-ce que je perds cela par un comportement HTML naturel?
Je suppose que je pourrais utiliser une manipulation de chaîne pour ce faire, mais cela devient délicat car ma page locale peut en fait être "http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html", et mon champ href peut ou peut ne pas avoir de sous-répertoire (par ex href="page.html"
vs. href="sub/page.html"
), donc je ne peux pas toujours supprimer tout simplement 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 uniquement le href court (tel que mis dans la <a>
balise d' ancrage ), alors je pourrais probablement simplement insérer un champ supplémentaire dans la balise, comme link="sec/IF00.html"
, mais encore une fois, ce serait un peu plus compliqué.
la source