简体   繁体   English

防止<dialog>在 Chrome 中关闭 keydown Esc</dialog>

[英]Prevent <dialog> from closing on keydown Esc in Chrome

Google Chrome closes <dialog> elements when Esc is pressed.按下 Esc 时,Google Chrome 会关闭<dialog>元素。 Seems to be reacting to keydown.似乎对keydown做出反应。

Firefox does not. Firefox 没有。 This is the expected behavior, as closing on any key press is easy to implement.这是预期的行为,因为关闭任何按键都很容易实现。

How to make Google Chrome leave dialogs open on Esc?如何让谷歌浏览器在 Esc 上打开对话框?

Please see fiddle https://jsfiddle.net/zeqo7kaf/1/请看小提琴https://jsfiddle.net/zeqo7kaf/1/

I have implemented window 's, document 's, body 's, dialog 's key events (up, down and pressed) to prevent propagation, however it seems to me that this is above dom events.我已经实现window的、 document的、 body的、 dialog的键事件(向上、向下和按下)以防止传播,但在我看来,这是在 dom 事件之上。

(in order to see dialogs in Firefox, go to about:config and set property dom.dialog_element.enabled to true ). (为了查看 Firefox、go 中的对话框到about:config并将属性dom.dialog_element.enabled设置为true )。

You can try to use cancel event: MDN您可以尝试使用cancel事件: MDN

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM