[Edge]。→、
要素でキーが押されたときに発生します。シフト キーなどの装飾キーも発生します。
¶keypress イベントの場合は、入力が確定しているキーで発生します。シフト キーなどの装飾キーは発生しません。
mdn: keypress イベントとは異なり、keydown イベントは生成する文字値に関係なくすべてのキーで発生します。
mdn: keydown と keyup イベントは、どのキーが押されたかを示すコードを提供し、keypress はどの文字が入力されたかを示します。例えば、小文字の "a" は keydown と keyup では 65 と報告され(¶keyCode)、keypress では 97 と報告されます。大文字の "A" は、どのイベントでも 65 と報告されます。
mdn: キーボードイベントは <input>、<textarea> と contentEditable 属性または tabindex="-1" を持つものだけが生成します。
mdn: Firefox 65 以降では、CJKT ユーザーのブラウザー間の互換性を高めるために、keydown および keyup イベントが IME 変換中に発行されるようになりました(バグ 354358)。変換操作中の keydown イベントをすべて無視するには、次のようにしてください(229 は、IME によって処理されたイベントに関連する keyCode に設定される特別な値です)。
| バブリング | ¶あり |
|---|---|
| キャンセル | ¶可能 |
| インターフェイス | KeyboardEvent |
| イベント ハンドラー プロパティ | onkeydown |
この例では、<input> 要素内でキーを押すたびに、KeyboardEvent.code 値を記録します。
HTML:
<input placeholder="ここをクリックして、キーを押してください。" size="40"> <p id="log"></p>
JavaScript:
const input = document.querySelector('input');
const log = document.getElementById('log');
input.addEventListener('keydown', logKey);
function logKey(e) {
log.textContent += ` ${e.code}`;
}
HTML:
<INPUT id=IdTest><BR> <SPAN id=IdLog></SPAN><BR> <SPAN id=IdLog2></SPAN><BR>
JavaScript:
function Job(eve){ //keydownイベントの処理:
D=eve; //=[object]:[object KeyboardEvent]。FEP 使用で「あ」を入力するために [a]キーを押した時。
詳細
//isTrusted=[boolean]:true
//key=[string]:Process
//code=[string]:KeyA
//location=[number]:0
//ctrlKey=[boolean]:false
//shiftKey=[boolean]:false
//altKey=[boolean]:false
//metaKey=[boolean]:false
//repeat=[boolean]:false
//isComposing=[boolean]:false
//charCode=[number]:0
//keyCode=[number]:229
//…
詳細
//=[object]:[object KeyboardEvent]。英数入力で[a]を押した時。
//isTrusted=[boolean]:true
//key=[string]:a
//code=[string]:KeyA
//location=[number]:0
//ctrlKey=[boolean]:false
//shiftKey=[boolean]:false
//altKey=[boolean]:false
//metaKey=[boolean]:false
//repeat=[boolean]:false
//isComposing=[boolean]:false
//charCode=[number]:0
//keyCode=[number]:65
//…
IdLog.innerHTML="code:"+ eve.code +"、key:"+ eve.key;
}
function Job2(eve){ //keypressイベントの処理:
DA=eve; //=[object]:[object KeyboardEvent]。英数入力で[a]を押した時。
詳細
//isTrusted=[boolean]:true
//key=[string]:a
//code=[string]:KeyA
//location=[number]:0
//ctrlKey=[boolean]:false
//shiftKey=[boolean]:false
//altKey=[boolean]:false
//metaKey=[boolean]:false
//repeat=[boolean]:false
//isComposing=[boolean]:false
//charCode=[number]:97
//keyCode=[number]:97
//…
IdLog2.innerHTML="code:"+ eve.code +"、key:"+ eve.key;
}
IdTest.onkeydown=Job;
IdTest.onkeypress=Job2;