2009-05-18 7 views
0

Je tente d'effacer tous mes cookies, dont certains sont placés sur un serveur et dont certains sont des cookies de navigateur.Javascript effacer tous les cookies

J'ai essayé d'utiliser document.cookie = « » mais cela ne répondait pas à mes besoins donc je peux écrire un code Javascript, qui peut être vu ci-dessous

La fonction est appelée pauseClearAllCookies onload.

<script type="text/javascript"> 

     //var cookie_names = new Array("__utma", "__utmb", "__utmc", "__utmz", "mortgage", "track_source","currency","selenium_testing","visit_secure_token", "rdb_history", "_csuid", "search", "finance", "searchhistory"); 

     function pauseClearAllCookies(){ 
      Set_Cookie("selenium_testing","1"); 
      drawTable(); 
      setTimeout("checkCookies();",1000); 
      document.getElementById('msg').innerHTML = "Gathering Cookies...."; 
     } 

     var cookie_counter = 0; 
     var cookieList; 

     function checkCookies(){ 
      if(document.cookie.indexOf(";") != -1){ 
       cookieList = document.cookie.split(";"); 
      }else{ 
       cookieList = [document.cookie]; 
      } 
      setTimeout("clearAllCookies();",1000); 
     } 

     function clearAllCookies(){ 

      document.getElementById('msg').innerHTML = "Deleting Cookies...."; 

      if(cookie_counter < cookieList.length){ 

       var cookieName = ""; 

       if(cookieList[cookie_counter].indexOf("=") != -1){ 
        cookieName = cookieList[cookie_counter].split("=")[0]; 
       }else{ 
        cookieName = cookieList[cookie_counter]; 
       } 
       document.getElementById('msg').innerHTML = "Deleting Cookie: "+cookieName; 
       // clear js cookies 
       Delete_Cookie(cookieName, '/', document.domain); 
       Delete_Cookie(cookieName, '/', '.www.abc.co.uk'); 
       Delete_Cookie(cookieName, '/', 'www.abc.co.uk'); 
       Delete_Cookie(cookieName, '/', '.abc.co.uk'); 

       // clear server cookies 
       Delete_Cookie(cookieName, '/', ''); 

       // increment counter 
       cookie_counter++; 

       drawTable(); 
       //recall the function 
       setTimeout("clearAllCookies();",800); 
      }else{ 
       Set_Cookie("selenium_testing","1"); 
      } 
     } 
     function drawTable() { 
      var allcookies = document.cookie.split(";"); 
      document.getElementById('heading').innerHTML = allcookies.length + " cookie found"; 

      var table_html = "<table class='data'>"; 
      for(var i=0; i < allcookies.length; i++){ 
       var cookie = allcookies[i].split("="); 
       table_html += "<tr>"; 
       table_html += "<td>"+(i+1)+"</td>"; 
       table_html += "<td>" + cookie[0] + "</td>"; 
       table_html += "<td>" + cookie[1] + "</td>"; 
       table_html += "<tr>"; 
      } 

      table_html += "</table>"; 

      document.getElementById('table').innerHTML = table_html; 
     } 
    </script> 

Le problème est que chaque fois que je lance ce code un cookie est laissé derrière lui, il est mis en boucle par cependant pas supprimé et son numéro d'article TOUJOURS un dans le tableau. Toute aide pour trier ces problèmes serait vraiment très appréciée.

+0

A côté, vous n'avez même pas afficher votre fonction Delete_Cookie ... – PhiLho

+0

D'où vient la valeur de cookie_counter? est-ce le code complet? – BerggreenDK

Répondre

2

avez-vous essayé de régler tous les formats de temps cookie « il y a milliseconde »? cela devrait l'éclaircir.

+0

Cela a été fait pour résoudre votre problème cameron? Veuillez marquer la bonne réponse, si vous l'avez trouvé afin que la communauté puisse développer les bonnes réponses. – BerggreenDK

0

Le premier objet dans un tableau est toujours 0 étiquetée

.split() [0]

1

Ajouter https://github.com/carhartl/jquery-cookie bibliothèque et exécuter ce script

for (var en .cookie de $()) $ .removeCookie (it); BerggreenDK a un très bon point.

+0

Gardez à l'esprit que cette question a plus de 7 ans et que la bibliothèque que vous avez liée n'est plus entretenue. Soyez attentif lorsque vous répondez à de vieilles questions avec de nouvelles réponses car l'information relative à cette question spécifique peut ne pas être pertinente en raison de l'âge – Takarii

Questions connexes