Chrome 中 onbeforeunload 事件失效了,如何实现离开页面提示?

chrome 中 onbeforeunload 事件失效了,如何实现离开页面提示?

chrome 中 window.onbeforeunload 事件失效问题与替代方案

由于谷歌安全政策的更新,从 chrome 51 版本起,onbeforeunload 事件已被弃用,以防止弹出窗口的滥用和恶意软件的传播。因此,在最新版本的 chrome 浏览器中,关闭浏览器时 onbeforeunload 事件不会再触发。

替代方案

为了实现离开页面提示功能,可以使用以下替代方案:

1. 页面可见性 api

页面可见性 api 提供了 visibilitychange 事件,可在页面可见性状态发生变化时触发。当页面变为隐藏或即将卸载时,可以使用此事件来显示离开提示。

2. 浏览器会话存储

可以通过在浏览器会话存储(例如 sessionstorage)中设置一个标志,来判断用户是否访问过该页面。在页面卸载时,如果检测到该标志存在,则可以显示离开提示。

3. 计时器检查

定期使用计时器检查用户与页面的交互情况,如果一段时间内未检测到任何交互,则可以显示离开提示。

4. dom 修改检测

监视文档的 dom 结构的变化,如果检测到用户修改了页面,则可以显示离开提示。

代码示例

以下代码示例展示了页面可见性 api 的替代方案:

document.addEventListener('visibilitychange', function() {
  if (document.visibilityState === 'hidden') {
    // 显示离开提示
  }
});

注意:这些替代方案可能会受到浏览器的安全限制或用户的隐私设置的影响。建议在使用这些方案之前,考虑其安全性和隐私影响。

以上就是Chrome 中 onbeforeunload 事件失效了,如何实现离开页面提示?的详细内容,更多请关注其它相关文章!