如何检测是否按下了某个键

时间:2020-06-11 00:44:29

标签: javascript

我正在尝试编写一个脚本来检测是否按下了某个键,但是我能想到的唯一合理的事情就是这个。

onkeydown('F12'){
    myFunction()
}

我该怎么做?谢谢!

4 个答案:

答案 0 :(得分:1)

为“ keydown”(或“ keyup”)操作添加事件侦听器。 要获取所按下的特定键,请使用“ event.key”。

document.addEventListener("keydown", function(e){
    var key = e.key
})

答案 1 :(得分:1)

使用keyCode可以获取特定的密钥。如果您按Enter关键字(代码13),则此示例有效。检查一下:https://keycode.info/

document.addEventListener("keypress", function(event) {
		if (event.keyCode == 13) {
			console.log('Hello world');
		}
});

答案 2 :(得分:0)

也许这就是您想要的:

var inputForm = document.getElementById("taskInput");

inputForm.addEventListener('keydown', function(event) {
	console.log("You are pressing this key :", String.fromCharCode(event.keyCode));
});
<input type="text" id="taskInput"/>

答案 3 :(得分:0)

您应该收听keydown事件并检查其e.key属性:

const KEY_HANDLERS = {
  F1: () => console.log('You pressed F1.'),
  ArrowUp: () => console.log('You pressed ↑.'),
  KeyA: () => console.log('You pressed A.'),
};

document.addEventListener('keydown', (e) => {
    e.preventDefault();

    const handler = KEY_HANDLERS[e.code];
    
    if (handler) {
      handler();
      return;
    }
    
    console.log('Pressed a key without a handler.')
});

如果需要检查KeyboardEvent的属性值,例如e.keye.codee.whiche.keyCode,则可以使用https://keyjs.dev

Key.js \ JavaScript KeyboardEvent's key codes & key identifiers

免责声明:我是作者。