是否有与 JavaScript 中的 window.onbeforeunload 类似的开箱即用 Vaadin 10(及更高版本)事件? 我试过使用 onDetach() 或 beforeLeave(),但它只能在 UI 内部工作,并且当用户重新加载页面或关闭页面时它不起作用。
最佳答案
您可以使用 https://vaadin.com/forum/thread/17523194/unsaved-changes-detect-page-exit-or-reload 中描述的方法这已在评论中提出。
与此同时,我敦促您对 beforeunload
事件格外小心,因为在某些情况下,即使用户实际上并未离开页面,它们也会被触发。
最常见的情况是用户单击开始下载的链接。在这种情况下,浏览器将在用户单击链接时立即触发该事件。稍后当浏览器收到响应 header 时,它会发现这是一个下载而不是要显示的新 HTML 页面。最终结果是 beforeunload
已被触发,但前一个页面仍在运行。
如果您想使用该事件进行清理,那么今天最好的方法可能是结合使用 unload
事件,然后使用新的 Beacon API 通知服务器用户已经实际上导航走了。将其集成到 Vaadin 应用程序中需要稍微多一点的 JavaScript,但它的好处是它可以实际工作。
关于javascript - Vaadin onbeforeunload 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56651887/