javascript - Kako dobiti anker iz URL-a koristeći jQuery?
Imam URL koji izgleda ovako:
www.example.com/task1/1.3.html#a_1
Kako mogu dobiti vrijednost a_1 sidra koristeći jQuery i pohraniti je kao varijablu?
Odgovor #1
Za trenutni prozor, možete koristiti ovo:
var hash = window.location.hash.substring(1);
Za dobivanje hash vrijednosti glavnog prozora, koristite ovo:
var hash = window.top.location.hash.substring(1);
Ako imate string s URL-om/hashem, najlakši način je:
var url = 'https://www.stackoverflow.com/questions/123/abc#10076097';
var hash = url.split('#').pop();
Ako koristite jQuery, upotrijebite ovo:
var hash = $(location).attr('hash');
Odgovor #2
Možete koristiti .indexOf() i .substring(), ovako:
var url = "www.aaa.com/task1/1.3.html#a_1";
var hash = url.substring(url.indexOf("#")+1);
Možete to pokušati ovdje, ako možda nema # u njemu, napravite provjeru if(url.indexOf("#") != -1) ovako:
var url = "www.aaa.com/task1/1.3.html#a_1", idx = url.indexOf("#");
var hash = idx != -1 ? url.substring(idx+1) : "";
Ako je ovo URL trenutne stranice, možete jednostavno koristiti window.location.hash da ga dobijete i zamijeniti # ako želite.
Odgovor #3
Koristi
window.location.hash
dohvatiti sve što je iznad i uključujući #
Odgovor #4
jQuery stil:
$(location).attr('hash');
Odgovor #5
Možete koristiti sljedeći "trik" za parsiranje bilo kojeg važećeg URL-a. Iskorištava posebnu svojstvo href elementa ankera, hash.
S jQuery
function getHashFromUrl(url){
return $("<a />").attr("href", url)[0].hash.replace(/^#/, "");
}
getHashFromUrl("www.example.com/task1/1.3.html#a_1"); // a_1
S čistim JS-om
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
