正确使用onbeforeunload的方法?

我试图在用户到达我的页面时发布数据。 这适用于chrome和explorer,以及firefox,但是,在firefox上,奇怪的是只有在用户关闭页面时才有效。 如果他们回去,或去另一个网站(通过键入地址栏或其他),它不会发布数据。 我的问题是,使用onbeforeunload发布数据的正确方法是什么?

$(window).bind('beforeunload', function () { $.post("track.php", { async: false, ip: ip, referer: referer, clicks: kactane2, scrolls: kactane, time: time, refid: refid, country: country, }); }); 

没有一个好方法,因为这不是如何使用onbeforeunload

使用onbeforeunload的正确方法是侦听此事件,然后卸载因用户离开页面而可能正在使用的任何数据或资源。 你不应该用它来尝试开始新事物。 根据HTML5规范 showModalDialog() ,显然不允许alert()confirm()prompt() ,并且想法是给你一个清理任何事件处理程序,web worker和其他东西的时刻。

如果定义了事件处理程序,则可能会向用户显示一个页面,上面写着"Are you sure you want to leave?" 但出于安全原因,表单通常无法自定义,但这取决于浏览器。

您可能最好在cookie中设置数据或者可以快速完成的事情,这只发生在浏览器中,然后只需在下一页加载时查找该数据。