Comment détecter les changements d'URL avec jQuery

Comment jQuery peut-il détecter les changements dans une URL?

Par exemple: si un utilisateur va à une page site.com/faq/ rien ne montre, mais s'il va sur site.com/faq/#open jquery le détecte et fait quelque chose.

Vous pouvez utiliser l'événement hashchange .
Ou intégrer un plugin de connexion de jquery

 $(function(){ // Bind the event. $(window).hashchange(hashchanged); // Trigger the event (useful on page load). hashchanged(); }); function hashchanged(){ var hash = location.hash.replace( /^#/, '' ); //your code } 

Essaye ça

 $(window).on('hashchange', function(e){ // Your Code goes here }); 

Ça fonctionne pour moi

Il suffit de regarder window.location.hash sur la page charger:

 $(document).ready(function() { if(window.location.hash === "open") { //Show something } }); 

Ou lier à 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 # s'appelle un 'fragment'

Si vous avez une URL de site.com/faq/#open , vous pouvez le faire

 var hash = window.location.hash 

Pour obtenir hash = 'open'