2017-10-22 20 views
0

多くの機能が廃止されたか、またはKeyboardEventオブジェクトクラスの現在の標準の一部ではないかどうか。 シフトまたはescのいずれかを押すたびに、なぜかと不思議でした。 ChromeやMozillaの場合は、コンソールにキーが表示されません。エスケープキーのKeyboardEventを検出するにはどうすればよいですか?

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(GeckoのようなKHTML)Chrome/61.0.3163.100 Safari/537.36 "
  • [Webインスペクタ] " Mozilla/5.0(Macintosh; Intel Mac OS X 10_12_6)AppleWebKit/604.1.38(KHTML 、Geckoのように)バージョン/ 11.0 Safari/604.1.38 "

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

+2

'keypress'イベントは、文字(又はバックスペース)に対応する場合にのみ、各キーにトリガしません。代わりに 'keydown'や' keyup'を使います。 – trincot

答えて

1

keypress印刷可能な文字が押されたときにのみトリガされます。すべてのキーについては、keyupまたは​​を使用する必要があります。 MDNから

打鍵

文字値 を生成し、キーが押されたときにKeyPressイベントが起動されます。文字値を生成するキーの例は、 英字、数字、句読点のキーです。 は、文字値を生成しないキーの例には、修飾キーなどAltキーシフトCtrlキー、またはメタです。

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>

関連する問題