Antworten:
Sie können das .indexOf()
und .substring()
wie folgt verwenden:
var url = "www.aaa.com/task1/1.3.html#a_1";
var hash = url.substring(url.indexOf("#")+1);
Sie können es hier ausprobieren . Wenn es möglicherweise keine enthält #
, führen Sie eine if(url.indexOf("#") != -1)
Überprüfung wie folgt durch:
var url = "www.aaa.com/task1/1.3.html#a_1", idx = url.indexOf("#");
var hash = idx != -1 ? url.substring(idx+1) : "";
Wenn dies die aktuelle Seiten-URL ist, können Sie sie einfach verwenden window.location.hash
, um sie abzurufen und die URL zu ersetzen, #
wenn Sie dies wünschen.
url.split("#").pop()
- Langsamer aber einfacher.
Für das aktuelle Fenster können Sie Folgendes verwenden:
var hash = window.location.hash.substr(1);
Verwenden Sie Folgendes , um den Hash-Wert des Hauptfensters abzurufen:
var hash = window.top.location.hash.substr(1);
Wenn Sie eine Zeichenfolge mit einer URL / einem Hash haben, ist die einfachste Methode:
var url = 'https://www.stackoverflow.com/questions/123/abc#10076097';
var hash = url.split('#').pop();
Wenn Sie jQuery verwenden, verwenden Sie Folgendes:
var hash = $(location).attr('hash');
var hash = window.location.hash.substr(1);
Da ein JS beide Teilzeichenfolgen- / Teilzeichenfolgenfunktionen hat, sind sie unterschiedlich, in diesem Fall jedoch gleich.
Verwenden
window.location.hash
um alles darüber hinaus abzurufen, einschließlich des #
location.hash.slice(1)
Sie daran, es zu verwenden, wenn Sie das Hash-Tag nicht in der letzten Zeichenfolge haben möchten!
jQuery-Stil:
$(location).attr('hash');
Sie können den folgenden "Trick" verwenden, um eine gültige URL zu analysieren . Es nutzt das Ankerelement , das Besondere href bezogenen Sach hash
.
function getHashFromUrl(url){
return $("<a />").attr("href", url)[0].hash.replace(/^#/, "");
}
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1
function getHashFromUrl(url){
var a = document.createElement("a");
a.href = url;
return a.hash.replace(/^#/, "");
};
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1
Wenn Sie nur eine einfache URL-Zeichenfolge haben (und daher kein Hash-Attribut haben), können Sie auch einen regulären Ausdruck verwenden:
var url = "www.example.com/task1/1.3.html#a_1"
var anchor = url.match(/#(.*)/)[1]
window.top.location.hash
stattdessen verwenden.