Comment jQuery peut-il détecter les modifications apportées à une URL?
Par exemple: si un utilisateur accède à une page site.com/faq/
rien ne se voit, mais s'il va à site.com/faq/#open
jquery le détecte et fait quelque chose.
Essaye ça
$(window).on('hashchange', function(e){
// Your Code goes here
});
Ça marche pour moi
Vous pouvez utiliser l'événement hashchange.
function hashchanged(){
var hash = location.hash.replace( /^#/, '' );
//your code
}
window.addEventListener("hashchange", hashchanged, false);
ou intégrer un plugin jquery hashchange
$(function(){
// Bind the event.
$(window).hashchange(hashchanged);
// Trigger the event (useful on page load).
hashchanged();
});
function hashchanged(){
var hash = location.hash.replace( /^#/, '' );
//your code
}
Regardez simplement window.location.hash
au chargement de la page:
$(document).ready(function() {
if(window.location.hash === "open")
{
//Show something
}
});
Ou liez à l'événement hashchange
de la fenêtre:
$(document).ready(function() {
$(window).hashchange(hashchanged);
});
function hashchanged()
{
//Show something
}
Essaye ça:
if (window.location.hash) {
// Fragment exists, do something with it
var fragment = window.location.hash;
}
Juste pour référence, la partie d'une URL spécifiée par le #
est appelé un "fragment"
Si vous avez une URL de site.com/faq/#open
, alors vous pouvez faire
var hash = window.location.hash
obtenir hash = 'open'