未检测到按键事件

keydown event is not being detected

我对 JavaScript 很陌生,我正在用它作为一个项目制作一个小游戏。我正在尝试检测 'keydown' 事件,但由于某种原因它无法正常工作。我已经研究了几个小时了,但我想不通。

var c = document.getElementById("myCanvas");
                 
c.addEventListener('keydown', keyDown);

function keyDown(e){
   console.log(e.key);
}

我已经尝试过 'keypress' 活动,但也没有用。我已经尝试了 2 个鼠标事件,它们运行良好,所以问题出在键盘事件上。

要监听 window 事件,试试这个:

window.addEventListener('keydown', keyDown);

function keyDown(e){
    console.log(e.key);
}

要监听文档事件,这个:

document.addEventListener('keydown', keyDown);

function keyDown(e){
    console.log(e.key);
}

您要添加关键事件的元素必须聚焦,事件才会真正发生。如果它是 div,它需要一个明确的 tabindex 来通过 tab 键获得焦点,然后你为其添加侦听器的关键事件将起作用