正确使用onbeforeunload的方法?

时间:2013-06-18 12:39:33

标签: javascript jquery

我想在用户到达我的页面时发布数据。这适用于chrome和资源管理器,也适用于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, 
      });

});

1 个答案:

答案 0 :(得分:1)

没有一个好办法,因为这不是onbeforeunload的用法。

使用onbeforeunload的正确方法是侦听此事件,然后卸载因用户离开页面而可能正在使用的任何数据或资源。你不应该用它来尝试开始新事物。根据{{​​3}} showModalDialog()alert()confirm()prompt()明确不被允许,我们的想法是为您提供一个清理任何事件处理程序的时刻,网络工作者和其他东西干净利落。

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

您可能最好在cookie中设置数据,或者可以快速完成并且只在浏览器中进行,然后在下一页加载时查找数据。