はじめに
ctrl + Enterに限らず、特定のキーを押下した際になんらかのイベントを発火させる方法です。
ソースコード
document.addEventListener('keydown', (e)=>{ if (e.ctrlKey && e.keyCode == 13) { alert('ctrl and enter!'); } })
一応HTMLも。
<!DOCTYPE html> <html> <head> <title>ctrl and enter click</title> </head> <body> click ctrl and enter! <script src='main.js'></script> </body> </html>
解説
上記のソースコードは、ctrlと、enterを同時に押下するとアラートダイアログが出るようになっています。
'keydown'イベントが発火すると、イベントオブジェクトには、どのキーが押されたかの情報を持つようになります。
その情報について、e.ctrlKey && e.keyCode == 13
の条件で、ctrlとenterが両方押されているか判定しているわけです。
なお、どのキーが押されたかのコード一覧はこちらが参考になります。
ちなみに、上記のコードではdocument
オブジェクトにaddEventListener
をしていますが、通常はelementById
などで取得した特定のDOMノードに対してイベントを付与するのが自然でしょう。