我正在创建一个具有撤消/重做功能的应用程序,并且想利用键盘快捷键功能来触发此行为,例如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
提前谢谢您!
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();
}
}