3

現在、Cookieは0に設定されており、ユーザーがブラウザを閉じると有効期限が切れます。ユーザーが私のウェブサイトを離れたときにCookieを期限切れにするように設定する方法はありますか?

Cookie.write('cookieName', 'true',{duration:0});

私は「私のウェブサイトを離れる」を次のように定義します:別のドメインに完全にナビゲートし、彼らが私のサイトをナビゲートする場合、私はクッキーを残したい

4

2 に答える 2

5

ユーザーがいつページから移動するかを予測できないため、おそらくonbeforeunloadイベントでCookieを期限切れにする必要があります。

window.onbeforeunload = deleteMyCookie;

関数の実装は追加していませんdeleteMyCookieが、基本的にはCookieを空の文字列で上書きし、有効期限を現在の時刻に設定できます。

更新-質問を編集すると、この回答が無効になります。あなたの場合、彼らがいつあなたのドメインから離れていくのかわからないので、時間ベースの有効期限を設定するために解決する必要があります。適度に短い期間(たとえば5分)を設定し、サイトにページをロードするたびに移動することができます。そのため、Cookieはドメインを離れてから最大5分しか存続しません。

于 2013-03-12T15:48:22.640 に答える
2

これは不可能です。Cookie標準は、そのケースをサポートするようには設計されていません。Cookieは、HTTP要求と応答(ステートレスプロトコルでの状態)に関するものであり、ユーザーがブラウザーを使用して別のドメインのあるページから別のページに移動し、何かを期限切れにすることではありません。

その有効期限は、ブラウザのタブセッションではなく、ユーザーのナビゲーションパターンなどではなく、時間(またはブラウザセッション)に基づいています。

インターネットドメインごとに1つのプロセスをサポートするブラウザ(おそらくセキュリティ機能として)があり、プロセスごとにCookieのみを許可するように設定されている場合、これは他に何もしなくても機能する可能性があります。ただし、この例が示すように、これはブラウザによるCookieの実装に基づいており、JavascriptでCookieを設定する方法とは特に関係ありません。

于 2013-05-26T14:29:14.670 に答える