在Javascript中覆盖浏览器“撤消”键盘命令?

问题描述 投票:0回答:1

我正在创建一个具有撤消/重做功能的应用程序,并且想利用键盘快捷键功能来触发此行为,例如cmd+Z

根据 MDN 文档,似乎可以绑定到“撤消”键事件。

我当前的代码如下所示。

document.onkeydown = checkKey;

function checkKey(e) {
    if (e.key === "Undo") {
        e.preventDefault();
        undo();
    }

但它仍然会触发浏览器的默认撤消操作(在 Arc 的情况下会转到不同的选项卡)。

在 StackOverflow 上的其他地方,我看到了一些旧的解决方案,涉及使用

keyup
keydown
来表示特定的
event.keycode
,这对我有用......但根据 MDN,这些已被弃用,我想避免使用它,如果可能的。想知道是否有更好的、现代的解决方案使用
e.key

提前谢谢您!

javascript undo
1个回答
0
投票
document.addEventListener("keydown", checkKey);

function checkKey(e) {
    // Check for the appropriate key combination for undo (e.g., Command/Ctrl + Z)
    if ((e.metaKey || e.ctrlKey) && e.key === "z") {
        e.preventDefault();
        undo();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.