私はこの質問が何千回も聞かれたことを知っていますが、答えのどれも私が探しているものを本当に私に与えません。 jQuery cookie を使用して情報を保存していますが、ブラウザーを閉じると期限切れになります。 window.unload
は実行可能なオプションではありません(読み取り:機能しません)。
私の質問はこれです:セッションのように、ブラウザが閉じたときにCookieを期限切れにするように設定することは実際に可能です?もしそうなら、誰かが方法を知っていますか?
更新:有効期限:0(機能しませんでした)を渡す代わりに、非常に単純であることがわかりました。有効期限をまったく渡さないでください。さて、これはなぜ多くの質問がなかったのかを説明しています。
皆さんありがとう。
有効期限を渡す代わりに、非常に単純であることがわかります:0(これは機能しませんでした)、有効期限をまったく渡さないでください。さて、これはなぜ多くの質問がなかったのかを説明しています。
したがって、次のようなフラグで有効期限を渡す代わりに:
$.cookie(key, value, { expiry: 0, domain: '', path: '' });
有効期限の値を省略するだけです。
$.cookie(key, value, { domain: '', path: '' });
そしてそれは機能します。それはとても単純なことで、私を混乱させました。
どっちにしても、ありがとうね!
RFC 2965仕様 で可能です。つまり、Cookie処理コードで「Discard」プロパティを設定し、ブラウザがサポートしている場合はを設定すれば可能です。
つまり、jQuerycookieはDiscardプロパティをサポートしていません。 jQuery-Cookie コードを次のように拡張する必要があります(元のファイルの約57行目です)。
return (document.cookie = [
config.raw ? key : encodeURIComponent(key),
'=',
config.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.discard ? '; Discard=' + options.discard : '',
options.secure ? '; secure' : ''
].join(''));
このようなデフォルト設定を使用する場合
$.cookie.defaults = { path: '/', expires: 365 };
次に、Cookieの値ごとに次の属性を使用する必要があります
$.cookie(key, value, { expires: null });