JavaScript で エスケープキー(Esc)を押したときにモーダルを閉じる
Published Feb 17, 2025
⋅
Updated Nov 4, 2025
モーダルはエスケープキー押下で閉じられる方が親切。モーダル系のライブラリはこれを実装していることが多く、キーボードを使ってブラウジングする人にとってもやさしい設計にできる。
方法としては、 window で 'keydown' イベントをリッスンし、イベントハンドラーで closeDialog() のようなモーダルを閉じる処理を行う。
const onKeyDownEsc = (event: KeyboardEvent) => {
if (!isOpen || event.key !== 'Escape') return;
event.preventDefault();
closeDialog();
};
window.addEventListener('keydown', onKeyDownEsc);ここでは、isOpen 変数でモーダルの状態を管理しているとする。
もし isOpen でない場合や押下されたキーが 'Escape' でない場合は、アーリーリターンする。
参考