--- title: GlobalEventHandlers.onkeydown slug: Web/API/GlobalEventHandlers/onkeydown tags: - API - Event Handler - GlobalEventHandlers - HTML DOM - Property - Reference translation_of: Web/API/GlobalEventHandlers/onkeydown ---
{{ApiRef("HTML DOM")}}

onkeydown は {{domxref("GlobalEventHandlers")}} ミックスインのプロパティで {{event("keydown")}} イベントを処理する {{domxref("EventHandler")}} です。

keydown イベントは、ユーザーがキーボードのキーを押下した時に発生します。

構文

target.onkeydown = functionRef;

functionRef は関数名または 関数式 です。この関数は、{{domxref("KeyboardEvent")}} オブジェクトとその 1 個の引数を受け取ります。

この例は、{{HtmlElement("input")}} 要素内でキーを押下するたびに、そのキーの {{domxref("KeyboardEvent.code")}} 値をログ出力します。

HTML

<input>
<p id="log"></p>

JavaScript

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
});

関連情報