Ich habe ein Ankertag mit einem lokalen href-Wert und eine JavaScript-Funktion, die den href-Wert verwendet, ihn jedoch an eine etwas andere Stelle leitet, als dies normalerweise der Fall wäre. Das Tag sieht aus wie
<a onclick="return follow(this);" href="sec/IF00.html"></a>
und eine JavaScript-Funktion, die aussieht
baseURL = 'http://www.someotherdomain.com/';
function follow(item) {
location.href = baseURL + item.href;
}
Ich würde erwarten, dass item.href
nur eine kurze Zeichenfolge von "sec / IF00.html" zurückgegeben wird, stattdessen jedoch die vollständige href "http://www.thecurrentdomain.com/sec/IF00.html". Gibt es eine Möglichkeit, wie ich nur die kurze href herausziehen kann, die in das Ankertag <a>
eingefügt wurde? Oder verliere ich das durch natürliches HTML-Verhalten?
Ich nehme an, ich könnte eine Zeichenfolgenmanipulation verwenden, um dies zu tun, aber es wird schwierig, weil meine lokale Seite tatsächlich "http://www.thecurrentdomain.com/somedir/somepath/sec/IF00.html" lautet und mein href-Feld möglicherweise oder möglicherweise kein Unterverzeichnis (z. B. href="page.html"
vs. href="sub/page.html"
), sodass ich nicht immer alles vor dem letzten Schrägstrich entfernen kann.
Sie fragen sich vielleicht, warum ich dies anfordere, und das liegt daran, dass die Seite dadurch viel sauberer wird. Wenn es nicht möglich ist, nur die kurze href (wie im <a>
Ankertag angegeben) zu erhalten, könnte ich wahrscheinlich einfach ein zusätzliches Feld in das Tag einfügen, wie link="sec/IF00.html"
, aber auch das wäre etwas chaotischer.