Odpowiedzi:
Możesz użyć .indexOf()
i .substring()
, w ten sposób:
var url = "www.aaa.com/task1/1.3.html#a_1";
var hash = url.substring(url.indexOf("#")+1);
Możesz spróbować tutaj , jeśli nie ma #
w nim, wykonaj następujące czynności if(url.indexOf("#") != -1)
kontrolne:
var url = "www.aaa.com/task1/1.3.html#a_1", idx = url.indexOf("#");
var hash = idx != -1 ? url.substring(idx+1) : "";
Jeśli jest to bieżący adres URL strony, możesz go użyć window.location.hash
i zastąpić go, #
jeśli chcesz.
url.split("#").pop()
- Wolniej, ale łatwiej.
W bieżącym oknie możesz użyć tego:
var hash = window.location.hash.substr(1);
Aby uzyskać wartość skrótu głównego okna , użyj tego:
var hash = window.top.location.hash.substr(1);
Jeśli masz ciąg znaków z adresem URL / skrótem, najprostszą metodą jest:
var url = 'https://www.stackoverflow.com/questions/123/abc#10076097';
var hash = url.split('#').pop();
Jeśli używasz jQuery, użyj tego:
var hash = $(location).attr('hash');
var hash = window.location.hash.substr(1);
ze względu na JS mają obie funkcje substr / substring, są one różne, ale w tym przypadku są takie same.
Posługiwać się
window.location.hash
aby odzyskać wszystko poza tym #
location.hash.slice(1)
jeśli nie chcesz, aby hash tag w końcowym ciągu!
Styl jQuery:
$(location).attr('hash');
Aby przeanalizować dowolny prawidłowy adres URL, możesz użyć następującej „sztuczki” . Zajmuje zaletą elementu kotwica specjalnej własności związane href „s, 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
Jeśli masz zwykły ciąg adresu URL (a zatem nie masz atrybutu skrótu), możesz również użyć wyrażenia regularnego:
var url = "www.example.com/task1/1.3.html#a_1"
var anchor = url.match(/#(.*)/)[1]
window.top.location.hash
zamiast tego.