在使用“后退”按钮导航时,我发现 IE+Safari/Opera+Firefox 中的 cookie 行为有一个奇怪的差异:
在 IE 和 Safari 中,当通过“后退”按钮返回上一页时,页面上设置的 cookie 会被丢弃(还原),而在 Opera 和 Firefox 中,新的 cookie 仍然存在。
后一种行为是我需要的,但如果可能的话,我该如何为 IE 和 Safari 实现它?
cookie 由服务器设置并使用 JQuery cookie API ($.cookie) 读取
谢谢。
在使用“后退”按钮导航时,我发现 IE+Safari/Opera+Firefox 中的 cookie 行为有一个奇怪的差异:
在 IE 和 Safari 中,当通过“后退”按钮返回上一页时,页面上设置的 cookie 会被丢弃(还原),而在 Opera 和 Firefox 中,新的 cookie 仍然存在。
后一种行为是我需要的,但如果可能的话,我该如何为 IE 和 Safari 实现它?
cookie 由服务器设置并使用 JQuery cookie API ($.cookie) 读取
谢谢。
我在 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';
}
有助于防止页面被缓存而不给最终用户一个警告对话框。
我不知道它是否有帮助,但我想我会给我的两分钱。