【问题标题】:Cookies in IE6+, Safari vs. Opera, Firefox (JQuery)IE6+、Safari 与 Opera、Firefox (JQuery) 中的 Cookie
【发布时间】:2009-12-07 13:04:09
【问题描述】:

我发现在 IE+Safari/Opera+Firefox 中使用“后退”按钮导航时 cookie 行为有一个奇怪的差异:

在 IE 和 Safari 中,当通过“返回”按钮返回上一页时,页面上设置的 cookie 会被丢弃(还原),而在 Opera 和 Firefox 中,新的 cookie 会保留。

后一种行为是我需要的,但如果可能的话,我该如何为 IE 和 Safari 实现它?

cookie 由服务器设置并使用 JQuery cookie API ($.cookie) 读取

谢谢。

【问题讨论】:

    标签: firefox cookies safari internet-explorer opera


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 2011-02-15
      • 1970-01-01
      • 2010-12-06
      相关资源
      最近更新 更多