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';
}

有助于防止页面被缓存而不给最终用户一个警告对话框。

我不知道它是否有帮助,但我想我会给我的两分钱。

于 2010-07-23T17:43:47.310 回答