1

「戻る」ボタンで移動しているときに、IE + Safari/Opera + Firefox で Cookie の動作に奇妙な違いがあることを発見しました。

IE と Safari では、「戻る」ボタンを使用して前のページに戻ると、ページに設定された Cookie が破棄 (元に戻されます) されますが、Opera と Firefox では新しい Cookie が保持されます。

後者の動作が必要ですが、IE と Safari でそれを実装するにはどうすればよいですか?

Cookie はサーバーによって設定され、JQuery Cookie API ($.cookie) を使用して読み取られます。

ありがとう。

4

1 に答える 1

0

FFとChromeで、正反対の問題に遭遇しました。ページが読み込まれると、Cookie は Cookie に戻ります。ユーザーが Cookie を変更するオプションを選択し、別のページに移動してクリックして戻ると、その変更は失われます。しかし、同じスクリプトが IE と Safari で問題なく動作します。

編集:次の PHP 行をページに追加して、FF/Chrome で発生していた永続性の問題を修正しました。

header("Cache-Control: no-store, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");

ブラウザごとにキャッシュのデフォルト ルールが異なるように見え、どちらを使用するかを指定する必要がありました。また、次のようなダミーの onBeforeUnload 関数を使用します。

window.onbeforeunload = function () {
    // return 'warning';
}

エンド ユーザーに警告ダイアログを表示せずに、ページがキャッシュされるのを防ぐのに役立ちます。

役に立つかどうかはわかりませんが、2 セントを差し上げたいと思いました。

于 2010-07-23T17:43:47.310 に答える