dポイントプレゼントキャンペーン実施中!

下記の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を削除しました。");
}
}

A 回答 (2件)

add=住所;name=ポチ;0421066NQ=Tdoprzahdoqekdnaaac&04aaac



とクッキーに書き込んで、上記の Delcookie() を試したところ、きれいに消えましたが・・。
(ブラウザは WinXP + IE 6.0)

少し気になるのは、クッキーの書き込みは escape でエスケープしていますか?

書き込み時は escape 、読み込み時は unescape しないと、
名前や値に「;」が含まれている場合に不具合が発生しやすく、
クッキーに削除できないゴミが残ってしまう場合があります。
(2バイト文字の中に特殊なコードが含まれていてバグになる場合も・・?)

関係ないかもしれませんが、参考まで。
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/12/13 23:11

クッキーは、クッキーの期限を現在時より前にして削除するのですが、時刻を設定しただけでは、削除されません。


実際に消されるのは
ブラウザ終了時(次の起動時?)です。
一度ブラウザを終了して、起動したら消えているはず。

この回答への補足

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

補足日時:2004/12/10 09:47
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!