2012-07-16 79 views
2

是否有任何方法(使用JavaScript)如何在浏览器关闭之前存储会话?我想使用会话cookie - 当到期未设置时,cookie在浏览器关闭时应该过期。但出于任何实际目的,这是不可用的,因为Firefox与显示我的窗口和标签从上次选项不会清除会话cookie即使浏览器关闭后。在浏览器关闭之前存储数据的方法

我也不能使用onunload的onbeforeunload因为我需要记住数据,直到关闭浏览器即使在用户重新加载或转到其他页面,然后回来。

+0

如果浏览器未关闭会话,则无法对此进行任何操作。 – Bergi 2012-07-16 14:18:11

+0

与我作为用户会话不会过期。 – GottZ 2012-07-16 14:25:16

+0

不幸的是,这里问题的症结在于Firefox处理会话cookie。这就是说,除非*显示我的窗口和标签*是Firefox的默认选项这些天,也许你应该考虑一个边缘案例?当然,最终取决于你的最终用户是谁。 – JoshMock 2012-07-16 21:59:27

回答

1

您可能感兴趣sessionStoragelocalStorage不为人知的表弟。它应该完成你所需要的 - 在会话中存储变量并在会话结束时清除它们。

+1

这是很有价值的信息,但我不得不怀疑浏览器是否以session处理cookie的方式来管理sessionStorage对象的生命周期,这会导致OP试图解决的相同问题。 – Pointy 2012-07-16 14:48:12

+0

@Pointy:“只要浏览器处于打开状态并且在页面重新加载和恢复时存活,页面会话就会持续。在新的选项卡或窗口中打开页面将导致启动新的会话。”这看起来像OP应该罚款'sessionStorage'。虽然我不能肯定地说。 – 2012-07-16 14:59:40

+0

我同意它*应该*可以工作,但是(例如)Firefox对于“浏览器会话”意味着什么非常松散,什么能够在崩溃后恢复。 – Pointy 2012-07-16 15:02:31