• ベストアンサー

クッキーが消せない

下記のDelcookieを呼び出してクッキーを削除したのですがdocument.write(document.cookie);で見ると0421066NQ=Tdoprzahdoqekdnaaac&04aaacと表示されてクッキーが消せません。 スクリプトでクッキーを消すにはどうすれば良いのでしょう? function Delcookie(){ if(document.cookie==""){ alert("このサーバによるCookieはありません。") }else{ tmp=document.cookie.split(";");     dTime = new Date();      dTime.setYear(dTime.getYear() - 1); for(i=0;i<tmp.length;i++){ temp1=tmp[i].split("=")[0]; document.cookie=temp1+"=;expires=" + dTime.toGMTString(); } alert("このサーバによるCookieを削除しました。"); } }

質問者が選んだベストアンサー

  • ベストアンサー
  • fukku22
  • ベストアンサー率57% (15/26)
回答No.2

add=住所;name=ポチ;0421066NQ=Tdoprzahdoqekdnaaac&04aaac とクッキーに書き込んで、上記の Delcookie() を試したところ、きれいに消えましたが・・。 (ブラウザは WinXP + IE 6.0) 少し気になるのは、クッキーの書き込みは escape でエスケープしていますか? 書き込み時は escape 、読み込み時は unescape しないと、 名前や値に「;」が含まれている場合に不具合が発生しやすく、 クッキーに削除できないゴミが残ってしまう場合があります。 (2バイト文字の中に特殊なコードが含まれていてバグになる場合も・・?) 関係ないかもしれませんが、参考まで。

meikenpochi
質問者

お礼

回答ありがとうございます。 書き込み時のescapeと読み込み時のunescapeは実行しています。 >クッキーに削除できないゴミが残ってしまう場合があります。 ゴミを消すには、IEのツール→オプション→Cookieの削除しか方法がないのでしょうか?

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

クッキーは、クッキーの期限を現在時より前にして削除するのですが、時刻を設定しただけでは、削除されません。 実際に消されるのは ブラウザ終了時(次の起動時?)です。 一度ブラウザを終了して、起動したら消えているはず。

meikenpochi
質問者

補足

BLUEPIXYさん回答ありがとうございます。 ちょっと説明不足だったので補足させていただきます。 現象としては add=住所;name=ポチ;0421066NQ=Tdoprzahdoqekdnaaac&04aaac とクッキーに書き込まれている状態でfunction Delcookie()を呼び出すとクッキーが部分的に削除されて0421066NQ=Tdoprzahdoqekdnaaac&04aaacだけがクッキーに残ってしまっているのです。 ちなみにサーバーにアップしてるのではなくホームページビルダーのプレビュー画面で発行したクッキーです。

関連するQ&A

専門家に質問してみよう