【问题标题】:Is there a workaround for Firefox not calling onunload when a window is closed?关闭窗口时 Firefox 不调用 onunload 是否有解决方法?
【发布时间】:2011-05-25 12:39:15
【问题描述】:

正如你们中的一些人所知,如果窗口或选项卡关闭,Firefox 不会调用 onunload。你知道有什么解决办法吗?

基本上,我需要知道用户已经完成了窗口,所以我可以释放一个锁。大家有什么建议吗?

我听说健壮的代码不应该使用 onunload。有什么明显的选择吗?

【问题讨论】:

  • 锁是如何设置的?你应该确保它在一段时间后被删除,否则有人可能会向你的服务器发送垃圾邮件,发送创建锁的 HTTP 请求,最终你会得到大量永远不会释放的锁。
  • 好吧,锁是基于会话的。每个会话只能设置一个。
  • 他们目前没有超时,但我可能会添加一个。

标签: javascript firefox cross-browser dom-events


【解决方案1】:

如果您的锁在服务器上,请在(例如)30 秒后使锁超时,并在窗口上设置每 25 秒自动更新锁的功能。从 setInterval 调用函数。当窗口关闭时,间隔被取消,锁将在 15 秒后超时(平均)。粗鲁但有效。

【讨论】:

  • 我不认为它很粗糙。我觉得这个主意不错。
  • 很高兴能提供帮助。 onunload 不可靠,如果只是因为浏览计算机的电源可能会关闭(或者它可能与 Internet 断开或建筑物可能会掉入海中),因此可能无法调用 onunload 并且您需要确保 您的系统继续正常运行。
猜你喜欢
  • 2011-05-23
  • 2015-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 1970-01-01
相关资源
最近更新 更多