--- 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")}} イベントを処理する {{event("Event_handlers", "event handler")}} です。
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
});