CloseWatcher:取消事件

实验性: 这是一项 实验性技术
在生产环境中使用之前,请仔细查看 浏览器兼容性表格

close事件之前,会向 CloseWatcher 对象触发cancel事件,这样就可以在必要时阻止close事件触发。它由所有关闭信号(例如 Esc 键)以及 CloseWatcher.requestClose() 触发。

语法

在诸如 addEventListener() 之类的方法中使用事件名称,或者设置事件处理程序属性。

js
addEventListener("cancel", (event) => { })

oncancel = (event) => { }

事件类型

一个 Event

示例

使用cancel事件

在本例中,我们要求用户确认是否真的要关闭组件,如果他们不确认,我们使用 Event.preventDefault() 取消事件,从而阻止close事件触发。

js
watcher.addEventListener("cancel", (e) => {
  if (e.cancelable && hasUnsavedData) {
    const userReallyWantsToClose = confirm("Are you sure you want to close?");
    if (!userReallyWantsToClose) {
      e.preventDefault();
    }
  }
};

// Trigger a close request manually
watcher.requestClose();

规范

规范
HTML 标准
# handler-closewatcher-oncancel

浏览器兼容性

BCD 表格仅在启用了 JavaScript 的浏览器中加载。