4

ブラウザーが閉じられ、次のように他のものと一緒にwindow.onbeforeunloadに既に置かれているときにCookieを削除する必要があります:

 window.onbeforeunload = function(){
        location.replace("admin.jsp?action=logout");
        deleteCookie('Times');
 }

setCookie を次のように使用します。

 function setCookie(name,value,days) {
         var expires;
         if (days) {
                  var date = new Date();
                  date.setTime(date.getTime()+(days*24*60*60*1000));
                  expires = "; expires="+date.toGMTString();
         }
         else {
                  expires = "";
              }
                  document.cookie = name+"="+value+expires+"; path=/";
     }

deleteCookieに関しては、次のように含まれています。

    setCookie(name,value,-1);

問題は、ブラウザを再起動するたびに、常に window.onbeforeunload になるため、deleteCookie が起動することです。カウンターが終了せず、ユーザーが終了する前にウィンドウ/タブを閉じることがある場合、Cookie が削除されないため、ユーザーがログインするたびにカウントダウンタイマーをリセットするために実際にこれが必要です。したがって、私の考えは、ユーザーがログインしたときにカウンターをリセットするか、ユーザーがログアウトしたときに単に Cookie を削除することです。ただし、これをコーディングする方法はまだわかりません。誰でも私を助けることができますか?ただし、コード スニペットは高く評価されます。CMIIW

4

2 に答える 2

6

Cookie に Expires 値を指定しないと、ブラウザー セッションが終了したとき、つまりユーザーがブラウザーを閉じたときに Cookie が削除されます。お気に入り:

Set-Cookie: made_write_conn=1295214458; Path=/; Domain=.foo.com

cookie made_write_conn にはmade_write_conn有効期限がないため、セッション cookie になります。ユーザーがブラウザを閉じると削除されます。やってみてください:

setCookie('Times',value, '');
于 2012-12-14T03:49:59.187 に答える
0

ブラウザが閉じているときは、ページの場所を変更できません。

サーバーでは、セッション終了イベントを使用してアカウントをクリーンアップする必要があります。

于 2012-12-14T03:44:09.427 に答える