--- title: GlobalEventHandlers.onkeydown slug: Web/API/GlobalEventHandlers/onkeydown tags: - API - Event Handler - GlobalEventHandlers - HTML DOM - Property - Reference translation_of: Web/API/GlobalEventHandlers/onkeydown ---
onkeydown
は {{domxref("GlobalEventHandlers")}} ミックスインのプロパティで {{event("keydown")}} イベントを処理する {{domxref("EventHandler")}} です。
keydown
イベントは、ユーザーがキーボードのキーを押下した時に発生します。
target.onkeydown = functionRef;
functionRef
は関数名または 関数式 です。この関数は、{{domxref("KeyboardEvent")}} オブジェクトとその 1 個の引数を受け取ります。
この例は、{{HtmlElement("input")}} 要素内でキーを押下するたびに、そのキーの {{domxref("KeyboardEvent.code")}} 値をログ出力します。
<input> <p id="log"></p>
const input = document.querySelector('input'); const log = document.getElementById('log'); input.onkeydown = logKey; function logKey(e) { log.textContent += ` ${e.code}`; }
{{EmbedLiveSample("Example")}}
仕様書 | 状態 | 備考 |
---|---|---|
{{SpecName('HTML WHATWG','webappapis.html#handler-onkeydown','onkeydown')}} | {{Spec2('HTML WHATWG')}} |
{{Compat("api.GlobalEventHandlers.onkeydown")}}
Firefox 65 以降、keyup
および keydown
イベントは、CJKT (中国、日本、韓国、台湾) ユーザーのブラウザー間の互換性を改善するために、IME 変換中に発生するようになりました (詳細は {{bug(354358)}} および IME 変換中にも keydown、keyup イベントが発生するようになりました を参照)。変換対象の一部に対してすべての keydown
イベントを無視するには、次のようにしてください (229 は IME により処理されるイベントに関する keyCode
の特別な値セットです):
eventTarget.addEventListener("keydown", event => { if (event.isComposing || event.keyCode === 229) { return; } // do something });