用于记录离开页面的事件处理程序 - onunload或onbeforeunload?

时间:2010-05-17 12:37:29

标签: javascript event-handling onbeforeunload onunload

对于之前关于使用javascript来衡量翻页时间的问题没有任何答案,我将开始编写自己的代码(!)。

为了衡量所需的关系长度,我建议在用户浏览页面时删除包含时间戳的cookie,然后在后续页面中,将该时间与“现在”进行比较并发送回请求一个记录间隔的URL。

似乎有两个可能的处理程序我可以将第一个代码块与 - onunload()处理程序或onbeforeunload()相关联吗?

更重要的是,它在没有/不支持处理程序的浏览器上静默失败,而不是可以在每个可能的浏览器中移植。

任何指针?陷阱?

TIA

下进行。

3 个答案:

答案 0 :(得分:2)

Opera不支持

onbeforeunload,并且实际上是用来让用户有机会中止卸载,所以你应该去onunload

答案 1 :(得分:2)

onunload或onbeforeunload的一件事是任何Ajax调用都必须具有async:false属性。这可以防止代码在调用完成之前实际离开。除此之外,请参阅Sean Kinsey的回答。

答案 2 :(得分:0)

我正在尝试在Firefox中使用onunload,但似乎它没有给Javascript很多时间做任何有用的事情,所以这是一个跨浏览器问题。 我可能想要使用两种处理程序的组合。