Chrome 浏览器关闭时不触发 `onbeforeunload` 事件,如何解决?

Chrome 浏览器关闭时不触发 `onbeforeunload` 事件,如何解决?

Chrome 浏览器关闭时不触发 onbeforeunload 事件的问题可通过以下方案解决

直接关闭浏览器窗口(未与页面交互)。

通过任务管理器强制终止进程。

强制交互:引导用户先与页面交互(如点击按钮),再执行敏感操作。

备用机制:结合 Service Worker 或 SharedWorker 监听浏览器关闭事件(需注意权限限制)。

直接关闭标签页/窗口。

点击链接导航离开。

刷新页面。

beforeunload 在导航离开时触发。

直接关闭时可能不触发,需依赖交互或备用方案。

通过组合上述方案,可最大限度解决 Chrome 关闭时不触发 onbeforeunload 的问题,同时兼顾用户体验与功能完整性。