J'ai une URL qui ressemble à:
www.example.com/task1/1.3.html#a_1
Comment obtenir la valeur d'ancrage a_1
à l'aide de jQuery et la stocker en tant que variable?
Vous pouvez utiliser les .indexOf()
et .substring()
, comme ceci:
var url = "www.aaa.com/task1/1.3.html#a_1";
var hash = url.substring(url.indexOf("#")+1);
Vous pouvez l'essayer ici , s'il ne contient pas de #
, faites une vérification if(url.indexOf("#") != -1)
comme ceci:
var url = "www.aaa.com/task1/1.3.html#a_1", idx = url.indexOf("#");
var hash = idx != -1 ? url.substring(idx+1) : "";
S'il s'agit de l'URL actuelle de la page , vous pouvez simplement utiliser window.location.hash
pour l'obtenir et remplacer le #
si vous le souhaitez. .
Pour fenêtre actuelle, vous pouvez utiliser ceci:
var hash = window.location.hash.substr(1);
Pour obtenir la valeur de hachage de la fenêtre principale, utilisez ceci:
var hash = window.top.location.hash.substr(1);
Si vous avez une chaîne avec une URL/hash, la méthode la plus simple est:
var url = 'https://www.stackoverflow.com/questions/123/abc#10076097';
var hash = url.split('#').pop();
Si vous utilisez jQuery, utilisez ceci:
var hash = $(location).attr('hash');
Utilisation
window.location.hash
pour récupérer tout au-delà, y compris le #
style jQuery:
$(location).attr('hash');
Vous pouvez utiliser le "truc" suivant pour analyser toute adresse URL valide . Il tire parti de la propriété spéciale liée à href de élément d'ancrage , 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
Si vous avez juste une chaîne d'URL ordinaire (et donc pas d'attribut de hachage), vous pouvez également utiliser une expression régulière:
var url = "www.example.com/task1/1.3.html#a_1"
var anchor = url.match(/#(.*)/)[1]