Effacer un cookie en Javascript | Développement Web

Effacer un cookie en Javascript

Pour effacer un cookie en javascript, il n’existe pas de fonction ou de méthode prédéfinie en javascript.
L’idée consistera donc à créer (ou redéclarer) le cookie avec une date d’expiration dépassée.

Supprimer un cookie

   function setCookie(nom, valeur, expire, chemin, domaine, securite){
     document.cookie = nom + ' = ' + escape(valeur) + '  ' +
               ((expire == undefined) ? '' : ('; expires = ' + expire.toGMTString())) +
               ((chemin == undefined) ? '' : ('; path = ' + chemin)) +
               ((domaine == undefined) ? '' : ('; domain = ' + domaine)) +
               ((securite == true) ? '; secure' : '');
   }

   function getCookie(name){
     if(document.cookie.length == 0)
       return null;

     var regSepCookie = new RegExp('(; )', 'g');
     var cookies = document.cookie.split(regSepCookie);

     for(var i = 0; i < cookies.length; i++){
       var regInfo = new RegExp('=', 'g');
       var infos = cookies[i].split(regInfo);
       if(infos[0] == name){
         return unescape(infos[1]);
       }
     }
     return null;
   }

   var dtExpire = new Date();
   dtExpire.setTime(dtExpire.getTime() + 3600 * 1000);

   setCookie('myCookie', 'développement web', dtExpire, '/' );
   document.write('myCookie vaut : ' + getCookie('myCookie'));
   // affiche "myCookie vaut : développement web"

   var dtExpireDel = new Date();
   dtExpireDel.setTime(dtExpireDel.getTime() - 1);

   setCookie('myCookie', '', dtExpireDel, '/');
    document.write('myCookie vaut : ' + getCookie('myCookie'));
   // affiche "myCookie vaut : null"   

A la création du cookie, on déclare une date d’expiration à venir. Quand on appelle celui-ci, il existe bel et bien et la récupération de sa valeur est alors possible.

En le redéclarant avec une date d’expiration dépassée, le cookie n’est plus disponible et l’appel à la fonction getCookie retourne null.

Le cookie a bien été effacé.

Avant d’utiliser les cookies dans vos scripts, il est important de savoir si le navigateur de l’internaute est configuré pour accepter ces derniers. Il existe une propriété nommée cookieEnabled de l’objet navigator qui vaut true s’ils sont activés et false s’ils ne le sont pas.

Cette propriété n’est toutefois pas vraiment fiable et le moyen le plus sûr de tester si les cookies sont acceptés par le navigateur (et pour votre domaine) est encore de créer un cookie et d’essayer de le lire.

Il est bon de savoir que des cookies créés en Javascript sont accessibles côté serveur avec des langages tels que le PHP. Réciproquement, un cookie créé en PHP est accessible en Javascript. Cette interaction peut parfois se révéler fort intéressante.