2009-05-18 13 views
0

Ich versuche, alle meine Cookies zu löschen, von denen einige auf einem Server und einige davon sind Browser-Cookies gesetzt.Javascript deaktivieren Sie alle Cookies

Ich habe mit document.cookie versucht = „“ aber das ist meine Bedürfnisse nicht befriedigen, so schrieb ich einige Javascript-Code, der

Die pauseClearAllCookies Funktion onload aufgerufen wird unter

zu sehen ist.

<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> 

Das Problem ist, dass jedes Mal, wenn ich diesen Code ausführen ein Cookie zurückgelassen wird, ist es jedoch geschleift wird durch nicht gelöscht und seine IMMER Artikel Nummer eins in der Array. Jede Hilfe bei der Sortierung dieser Probleme würde sehr geschätzt werden.

+0

BerggreenDK hat einen sehr guten Punkt. Außerdem zeigen Sie nicht einmal Ihre Delete_Cookie-Funktion ... – PhiLho

+0

Woher kommt der Wert von cookie_counter? Ist das der vollständige Code? – BerggreenDK

Antwort

2

haben Sie versucht, alle Cookie-Zeitformate auf "vor einer Millisekunde" zu setzen? das sollte es aufklären.

+0

Hat das dein Problem Cameron behoben? Bitte markieren Sie die richtige Antwort, wenn Sie es gefunden haben, damit die Community die richtigen Antworten generieren kann. – BerggreenDK

0

Das erste Objekt in einem Array wird immer 0 markiert

.split() [0]

1

hinzufügen https://github.com/carhartl/jquery-cookie Bibliothek und führen Sie dieses Skript

für (var es in $ .cookie()) $ .removeCookie (it);

+0

Denken Sie daran, diese Frage ist älter als 7 Jahre und die Bibliothek, die Sie verlinkt haben, wird nicht mehr gepflegt. Seien Sie vorsichtig, wenn Sie alte Fragen mit neuen Antworten beantworten, da die Informationen zu dieser spezifischen Frage aufgrund des Alters möglicherweise nicht relevant sind – Takarii

Verwandte Themen