Vaadin onbeforeunload 事件

Vaadin onbeforeunload event

在 JavaScript 中是否有任何类似于 window.onbeforeunload 的开箱即用 Vaadin 10(及更高版本)事件? 我试过使用 onDetach() 或 beforeLeave(),但它只在 UI 内部有效,当用户重新加载页面或关闭页面时它不起作用。

您可以使用 https://vaadin.com/forum/thread/17523194/unsaved-changes-detect-page-exit-or-reload 中已在评论中建议的方法。

与此同时,我敦促您对 beforeunload 事件格外小心,因为在某些情况下,即使用户实际上并未离开页面,它们也会被触发。

最常见的情况是用户单击 link 开始下载。在这种情况下,浏览器将在用户单击 link 时立即触发该事件。稍后当浏览器收到响应 headers 时,它会发现这是一个下载而不是要显示的新 HTML 页面。最终结果是 beforeunload 已被触发,但前一页仍保留 运行.

如果你想使用事件进行清理,那么今天最好的方法可能是结合使用 unload 事件,然后使用 new-ish Beacon API 来通知用户实际离开的服务器。将其集成到 Vaadin 应用程序中需要稍微多一些 JavaScript,但它的好处是它可以实际工作。