個人製作中のブラウザアプリで、キー入力を受け付けたいという場面がありました。このキー入力ですが、Ctrl(Command)と同時押しのものも含まれます。
しかし、ブラウザで動かす以上、ブラウザのキーボードショートカットを入力するとブラウザがそれに対応する動作をしてしまうということになります。特に、タブを開くものだったり、タブを閉じるものだった場合、もう大変です。
恐らく物凄くややこしい手法を使うことになるんだろうな、辛いな〜、と思いながら検索していたところ……
document.addEventListener('keydown', evt => {
evt.preventDefault();
});
なるほど。
実際にほぼ同じコードをアプリに組み込んで、タブを閉じるショートカットが発動せず、また一方でアプリでのキーボード入力イベントは検知されていることが確認できました。
一件落着。