1

この関数を使用して、クライアントに Cookie を書き込みます。

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

そして、私はこのようにクッキーを設定します:

createCookie("foo", "1"); // no expiration time

ブラウザがシャットダウンされたときにこの Cookie を削除することを期待していますが、実際にはほとんどの場合そのように動作します。ただし、Firefox ではそうではなく、再起動後も Cookie が残っていることに気付きました。

ユーザーがブラウザを閉じたときにブラウザの状態をフリーズできるようにする設定に依存していると思います。

誰もがそのようなことを経験したことがありますか?

あなたが推奨できる回避策はありますか??

乾杯

4

1 に答える 1

0

私はこの問題を正確に解決しようとはしていません。1つの注意点がありますが、うまくいくはずの提案があります。セッションはブラウザセッションだけでなく、特定のタブにも制限されます。

できることは、window.nameを乱数に設定してから、その識別子をそのセッションのCookie名に追加することです。Cookieを読み取るときは、ウィンドウの名前のIDと一致するIDを持つCookieのみを使用してください。 window.name更新とナビゲーションの間で持続するため、が選択されました。

最高の解決策ではありませんが、それはあなたが見ている問題を打ち消します。

さらに、その識別子以外のものをwindow.nameに格納する必要がある場合は、オブジェクトをjson_encodeしてからbase64_encodeして、さらに多くのプロパティを格納できます。

于 2012-12-18T17:16:56.027 に答える