有没有办法在javascript中检测卸载事件是通过刷新,后退按钮还是关闭浏览器引起的?

Chr*_*ris 30 javascript events

我目前正在查看窗口的"卸载"事件,以尝试确定"卸载"事件是如何触发的,但是收效甚微.有没有办法确定如何触发javascript事件?

  • 页面刷新
  • 后退按钮(或离开页面)
  • 关闭浏览器

基本上我只需要在浏览器窗口关闭时执行一些代码,而不是刷新或导航.

目的:当客户更新我们的软件时,更新会将他们的第一个Internet请求重定向到商品页面.有一个"不要打扰"选项的按钮,但有些用户只需关闭他们的浏览器.关闭浏览器后,我需要复制"请勿打扰"功能,以便用户不再被重定向到优惠页面.由于离开页面的方式不同,简单地附加到"卸载"事件将不起作用.

som*_*ome 15

不,如果有,它将取决于浏览器.当用户关闭页面时,您尝试运行哪种代码?是注销用户吗?如果浏览器崩溃或网络连接中断(如果计算机进入睡眠/休眠模式可能不会),则用户将无法注销.

如果是出于注销目的,您应该在服务器上使用一个timestamp变量,该变量随每个请求更新(或使用ajax-ping),如果在指定时间内没有看到用户,则注销该用户.

更新:在stackoverflow 找到这个答案.