在Chrome中防止<dialog>在按下Esc键时关闭

15

当按下 Esc 键时, Google Chrome 会关闭 <dialog> 元素。这似乎是对 keydown 的反应。

而 Firefox 则不会这样做。这是期望的行为,因为在任何键按下时都可以轻松实现关闭对话框。

如何让 Google Chrome 在按下 Esc 键时保持对话框的打开状态?

请参见 fiddle:https://jsfiddle.net/zeqo7kaf/1/

我已经在 windowdocumentbodydialog 上实现了键盘事件(up、down 和 pressed),以防止事件传播,但我认为这超出了 DOM 事件范畴。

(要在 Firefox 中看到对话框,请转到 about:config 并将属性 dom.dialog_element.enabled 设置为 true。)

1个回答

36

您可以尝试使用cancel事件: MDN


dialog.addEventListener('cancel', (event) => {
    event.preventDefault();
});

修改后的 JSFiddle:https://jsfiddle.net/7et3hf8p/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接