Détecter le changement de valeur d'un cookie avec JavaScript

"CookieChange" est une fonction JavaScript qui permet de détecter le changement de valeur d'un cookie.

function CookieChange(n){var g=function(y){var a=y+"=",b=document.cookie.split(';'),c,i,j=b.length;for(i=0;i<j;i++){c=b[i];while(c.charAt(0)===' '){c=c.substring(1);}if(c.indexOf(a)===0){return c.substring(a.length,c.length);}}return'';},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=g(r[0]);if(v!==r[2]){var o=(function(a){return a;})(r[2]);+'';r[2]=v;r[1](r[0],v,o);}}s();}},150);};return{addListener:function(f){a.push([n,f,g(n)]);s();},removeListener:function(f){for(var i=0,j=a.length;i<j;i++){if(a[i][0]===n&&a[i][1]===f){a.splice(i,1);i--;j--;}}}};}

Le constructeur prend en paramètre le nom du cookie pour lequel détecter le changement de valeur.

var mon_cookie = new CookieChange('mon_cookie');

Une instance de "CookieChange" est retournée, avec deux méthodes :

  • "CookieChange.addListener(fn)" : permet d'ajouter un écouteur d'évènement éxecutant une fonction lorsque la valeur du cookie change.
  • "CookieChange.removeListener(fn)" : permet de retirer l'écouteur d'évènement et de stopper la détection.

Lorsque la valeur du cookie spécifié change, la fonction est exécutée et reçoit 3 arguments :

  • "nom_du_cookie" : le nom du cookie
  • "nouvelle_valeur" : la nouvelle valeur du cookie
  • "ancienne_valeur" : l'ancienne valeur du cookie
function maj_cookie(nom_du_cookie, nouvelle_valeur, ancienne_valeur) {
    console.log(nom_du_cookie, nouvelle_valeur, ancienne_valeur);
}

var mon_cookie = new CookieChange('mon_cookie');
    mon_cookie.addListener(maj_cookie);
    // myCookie.removeListener(maj_cookie);

Cet article vous a-t-il été utile ?

Super :)
Merci d'avoir donné votre avis !

Oups :(
Merci d'avoir donné votre avis qui va nous permettre de nous améliorer !

^