Détecter le changement d'URL avec JavaScript

Concept et utilisation

La fonction URLChange() permet de détecter le changement d'URL d'une page web.

Constructeur

URLChange()

Retourne un objet détecteur de changement d'URL.

Syntaxe
new URLChange();
Paramètre

Aucun.

Méthodes de l'instance
detecteur.addListener()

La méthode addListener() de l'interface CookieChange() ajoute un écouteur au détecteur de changement d'URL

Syntaxe
detecteur.addListener(ecouteur);
Paramètre
ecouteur(Function)

Le paramètre ecouteur de la méthode addListener() définit un écouteur de changement d'URL qui sera ajouté au détecteur.
Il s'agit d'une fonction de rappel, dont les arguments sont :

  • nouvelle_valeur : nouvelle valeur de l'URL.
  • ancienne_valeur : ancienne valeur de l'URL.
detecteur.removeListener()

La méthode removeListener() de l'interface CookieChange() supprime un écouteur du détecteur de changement d'URL.

Syntaxe
detecteur.removeListener(ecouteur);
Paramètre
ecouteur(Function)

Le paramètre ecouteur de la méthode removeListener() définit un écouteur de changement d'URL qui sera supprimé du détecteur.

Exemple de détection du changement d'URL

var detecteur = new URLChange();
var ecouteur = function(nouvelle_valeur, ancienne_valeur) {

  console.log(nouvelle_valeur, ancienne_valeur);

  detecteur.removeListener(ecouteur); // supprime l'écouteur
}
detecteur.addListener(ecouteur); // ajoute l'écouteur

Code source de la fonction

function URLChange(){var l=location,a=[],t=null,s=function(){clearTimeout(t);
t=setTimeout(function(){if(a.length>0){for(var i=0,j=a.length;i<j;i++){var r=a[i],
v=l.href;if(v!==r[1]){var o=(function(a){return a;})(r[1]);+'';r[1]=v;r[0](v,o);}}
s();}},150);};return {addListener:function(f){a.push([f,l.href]);s();},
removeListener:function(f){for(var i=0,j=a.length;i<j;i++){if(a[i][0]===f){
a.splice(i,1);i--;j--;}}}};}
^