2009-05-18 17 views
0

私はすべてのクッキーをクリアしようとしていますが、そのうちのいくつかはサーバ上に設定されており、一部はブラウザクッキーです。Javascriptすべてのクッキーをクリア

私はpauseClearAllCookies機能がオンロードと呼ばれ

下に見ることができるいくつかのJavaScriptコードを、書いたように、しかし、これは私のニーズを満たしていませんでした「」= document.cookieを使用して試してみました。

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

しかし問題は削除され、アレイにおけるそのALWAYSアイテムナンバーワンではないを通じて私は1枚のクッキーが置き去りにされ、このコードを実行するたびに、それがループしていることです。この問題を分類する上での助けとなることは、本当に高く評価されます。

+0

BerggreenDKは非常に良い点があります。さらに、あなたはDelete_Cookie関数を表示していません... – PhiLho

+0

cookie_counterはどこから値を取得しますか?これは完全なコードですか? – BerggreenDK

答えて

2

すべてのCookieの時刻形式を「ミリ秒前」に設定しようとしましたか?それはそれをクリアするべきです。

+0

これはあなたの問題をキャメロンで解決しましたか?あなたがそれを見つけたら、正しい答えをマークしてください。そうすれば、コミュニティは正解を増やすことができます。 – BerggreenDK

0

は、アレイ内の最初のオブジェクトは、常に0

.split()[0]

1

($の.cookieにおけるVARそれ(このスクリプト

https://github.com/carhartl/jquery-cookieライブラリを追加し、実行をラベル付けされました) )$ .removeCookie(それ);

+0

この質問は7歳以上であり、リンクしたライブラリはもはや維持されていません。その特定の質問に関連する情報として古い質問に新しい答えで答えるときには、年齢のために関連性がないかもしれないことに注意してください – Takarii

関連する問題