如何检测转义键的KeyboardEvent?

时间:2017-10-22 20:13:17

标签: javascript keyboard-events console.log

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

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

使用浏览器控制台

  • “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,与Gecko一样)Chrome / 61.0.3163.100 Safari / 537.36”
  • [网络督察] “Mozilla / 5.0(Macintosh; Intel Mac OS X 10_12_6)AppleWebKit / 604.1.38(KHTML,类似Gecko)Version / 11.0 Safari / 604.1.38”

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

1 个答案:

答案 0 :(得分:1)

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

来自 MDN

  

<强>按键

     

当生成字符值的键时会触发按键事件   被压了下来。产生字符值的键的示例是   字母,数字和标点符号键。没有的键的例子   生成字符值的是修饰键,例如 Alt Shift Ctrl Meta

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