javascript - Vaadin onbeforeunload 事件

标签 javascript java vaadin vaadin10

是否有与 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/

相关文章:

java - java java.util.List接口(interface)中不同参数类型的含义

kotlin - “水平布局”中的Vaadin网格无法填充屏幕,并且弹性增长无法正常工作

java - Vaadin flow - 在不同的包中拥有 View

javascript - 尽管宽度为 :0;,但 Textarea 滚动条不会消失

javascript - 为什么 JSON.stringify 只显示点击事件的 isTrusted 成员?

javascript - 如何删除 href 链接的禁用属性

java - 坐标转换困境,用户坐标到设备坐标?

java - 一个枚举问题

javascript - 在 AngularJS 中使用窗口访问 iframe 内容

vaadin - 表格上的自定义双击事件