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'interfaceCookieChange()
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éthodeaddListener()
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'interfaceCookieChange()
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éthoderemoveListener()
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--;}}}};}
Dernière mise à jour le .