如何检测转义键的 KeyboardEvent?

A. *_*ran 0 javascript keyboard-events console.log

许多功能是否已被弃用或不是KeyboardEvent对象类的当前标准的一部分。只是想知道为什么每当我按shiftesc。我的 Chrome 或 Mozilla 控制台上没有显示任何键。

document.addEventListener("keypress", (e) => {
    console.log(e.keyCode);
    console.log(e.key);
    console.log(e.code);
    console.log(e.shiftKey);
});
Run Code Online (Sandbox Code Playgroud)

使用的浏览器控制台

  • "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0"
  • "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36"
  • [Web Inspector] "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Safari/604.1.38"

https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent

Sco*_*cus 5

keypress仅在按下可打印字符时触发。对于所有键,您需要使用keyupkeydown

来自MDN

按键

当按下产生字符值的键时会触发 keypress 事件。产生字符值的键的示例是字母、数字和标点符号键。不产生字符值的键的例子是修饰键如AltShiftCtrl,或Meta

document.addEventListener("keydown", (e) => {
    console.log(e.keyCode);
    console.log(e.key);
    console.log(e.code);
    console.log(e.shiftKey);
});
Run Code Online (Sandbox Code Playgroud)
<h1>Click into this area and then press ESC</h1>
Run Code Online (Sandbox Code Playgroud)