CloseWatcher: requestClose() 方法

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

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

CloseWatcher 接口的 requestClose() 方法会触发一个 cancel 事件,如果该事件没有被 Event.preventDefault() 阻止,那么它将继续触发一个 close 事件,最后停用该 close watcher,就如同调用了 destroy() 方法一样。

语法

js
requestClose()

参数

无。

返回值

无(undefined)。

示例

使用 requestClose() 方法

在此示例中,您拥有自己的 UI 组件(一个选择器),并且希望同时支持平台默认的关闭方法(例如,Esc 键)以及您自定义的关闭方法(一个关闭按钮)。

您的 UI 组件的 onclick 事件处理程序可以调用 requestClose 来请求关闭,并将您的关闭请求通过平台关闭方法使用的同一个 onclose 事件处理程序进行路由。

js
const watcher = new CloseWatcher();
const picker = setUpAndShowPickerDOMElement();
let chosenValue = null;

watcher.onclose = () => {
  chosenValue = picker.querySelector("input").value;
  picker.remove();
};

picker.querySelector(".close-button").onclick = () => watcher.requestClose();

规范

规范
HTML
# dom-closewatcher-requestclose

浏览器兼容性