現在、Cookieは0に設定されており、ユーザーがブラウザを閉じると有効期限が切れます。ユーザーが私のウェブサイトを離れたときにCookieを期限切れにするように設定する方法はありますか?
Cookie.write('cookieName', 'true',{duration:0});
私は「私のウェブサイトを離れる」を次のように定義します:別のドメインに完全にナビゲートし、彼らが私のサイトをナビゲートする場合、私はクッキーを残したい
現在、Cookieは0に設定されており、ユーザーがブラウザを閉じると有効期限が切れます。ユーザーが私のウェブサイトを離れたときにCookieを期限切れにするように設定する方法はありますか?
Cookie.write('cookieName', 'true',{duration:0});
私は「私のウェブサイトを離れる」を次のように定義します:別のドメインに完全にナビゲートし、彼らが私のサイトをナビゲートする場合、私はクッキーを残したい
ユーザーがいつページから移動するかを予測できないため、おそらくonbeforeunload
イベントでCookieを期限切れにする必要があります。
window.onbeforeunload = deleteMyCookie;
関数の実装は追加していませんdeleteMyCookie
が、基本的にはCookieを空の文字列で上書きし、有効期限を現在の時刻に設定できます。
更新-質問を編集すると、この回答が無効になります。あなたの場合、彼らがいつあなたのドメインから離れていくのかわからないので、時間ベースの有効期限を設定するために解決する必要があります。適度に短い期間(たとえば5分)を設定し、サイトにページをロードするたびに移動することができます。そのため、Cookieはドメインを離れてから最大5分しか存続しません。
これは不可能です。Cookie標準は、そのケースをサポートするようには設計されていません。Cookieは、HTTP要求と応答(ステートレスプロトコルでの状態)に関するものであり、ユーザーがブラウザーを使用して別のドメインのあるページから別のページに移動し、何かを期限切れにすることではありません。
その有効期限は、ブラウザのタブセッションではなく、ユーザーのナビゲーションパターンなどではなく、時間(またはブラウザセッション)に基づいています。
インターネットドメインごとに1つのプロセスをサポートするブラウザ(おそらくセキュリティ機能として)があり、プロセスごとにCookieのみを許可するように設定されている場合、これは他に何もしなくても機能する可能性があります。ただし、この例が示すように、これはブラウザによるCookieの実装に基づいており、JavascriptでCookieを設定する方法とは特に関係ありません。