后退按钮未触发 Chrome 中“beforeunload”中的方法

Posted

技术标签:

【中文标题】后退按钮未触发 Chrome 中“beforeunload”中的方法【英文标题】:Back button not triggering the method within the "beforeunload" in Chrome 【发布时间】:2013-07-01 16:44:42 【问题描述】:

我使用 jquery 事件 beforeunload $(window).bind('beforeunload') 在用户关闭浏览器、选项卡或点击后退按钮后进行 api 调用。它在 Firefox 中运行良好,但在 Chrome 中不完全。在 Chrome 中,它在用户关闭浏览器或标签页时起作用,但在用户点击后退按钮时不起作用。该方法应该在用户关闭浏览器或选项卡或离开页面时从“当前活动用户”列表中删除用户。由于某种原因,在 Chrome 中,只要用户通过后退按钮离开页面,历史 API 就不会删除用户。这可能是什么原因造成的?谢谢。

【问题讨论】:

【参考方案1】:

我不确定为什么会发生这种情况,但就个人而言,我不会依赖这个。如果用户的计算机崩溃了怎么办?浏览器不会触发该事件——它没有机会触发。最好的办法是每隔 5 秒左右通过 ajax 或类似的方式调用一个页面,并且该页面会更新与用户相关的日期。然后,您可以在当前活动用户列表中向用户显示日期在最后一分钟内的位置,或者您决定的任何日期。如果他们的计算机崩溃,日期将不再更新。

问候, 克拉基

【讨论】:

以上是关于后退按钮未触发 Chrome 中“beforeunload”中的方法的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 设备上使用后退按钮时未触发 CSS 关键帧动画

使用 Laravel 5.4 时在 Chrome 中防止后退按钮的选项

Chrome/Safari 中的后退按钮错误

如何从 Ionic5 代码触发后退按钮

按下后退按钮时 Chrome 显示 ajax 响应

按下chrome后退按钮时,模式内的数据复制