J'ai une URL qui ressemble à :
www.example.com/task1/1.3.html#a_1
Comment puis-je obtenir le a_1
la valeur de l'ancre en utilisant jQuery et en la stockant comme une variable ?
J'ai une URL qui ressemble à :
www.example.com/task1/1.3.html#a_1
Comment puis-je obtenir le a_1
la valeur de l'ancre en utilisant jQuery et en la stockant comme une variable ?
Pour fenêtre actuelle vous pouvez utiliser ceci :
var hash = window.location.hash.substr(1);
Pour obtenir la valeur de hachage du fenêtre principale utilisez ceci :
var hash = window.top.location.hash.substr(1);
Si vous avez une chaîne avec un 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');
Version raccourcie - var hash = window.location.hash.substr(1);
à cause d'un JS ont les deux fonctions substr/substring, ils sont différents, mais dans ce cas la même.
Quelle est la meilleure façon de suivre les changements de ce type, par exemple si quelqu'un a cliqué sur un lien interne à la page ?
Vous pouvez utiliser le .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 si elle ne dispose pas d'une #
dans celui-ci, faites un if(url.indexOf("#") != -1)
vérifiez comme ceci :
var url = "www.aaa.com/task1/1.3.html#a_1", idx = url.indexOf("#");
var hash = idx != -1 ? url.substring(idx+1) : "";
Si c'est le actuel vous pouvez simplement utiliser window.location.hash
pour l'obtenir, et remplacer le #
si vous le souhaitez.
Vous pouvez utiliser l'"astuce" suivante pour analyser les données tout URL valide. Il tire parti de la fonction élément d'ancrage La propriété spéciale de la href, 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
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.