[解決済み] KeyboardEvent.keyCodeが非推奨になりました。これは実際にはどのような意味があるのでしょうか?
2022-04-16 15:53:04
質問
MDNによると、我々は最も確実に
ではなく
を使用しています。
.keyCode
プロパティを使用します。これは非推奨です。
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
W3スクールでは、この事実は軽視され、次のような傍証があるのみです。
.keyCode
は互換性のためにのみ提供されており、最新版のDOM Events Specificationでは
.key
プロパティの代わりに
問題は
.key
はブラウザがサポートしていないので、何を使えばいいのでしょうか?何か見落としがあるのでしょうか?
解決方法は?
共有したリンク先に書かれているように、3つの対処法があります。
if (event.key !== undefined) {
} else if (event.keyIdentifier !== undefined) {
} else if (event.keyCode !== undefined) {
}
クロスブラウザに対応させたいなら、それが正しい方法です。
こんな感じで実装してくれると楽なんですけどね。
var dispatchForCode = function(event, callback) {
var code;
if (event.key !== undefined) {
code = event.key;
} else if (event.keyIdentifier !== undefined) {
code = event.keyIdentifier;
} else if (event.keyCode !== undefined) {
code = event.keyCode;
}
callback(code);
};
関連
-
[解決済み】TypeError: Router.use() はミドルウェアの関数を要求しているが、Object を取得した。
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptでオブジェクトをディープクローンする最も効率的な方法は何ですか?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] とは何ですか! (not not)演算子とは何ですか?
-
[解決済み] callとapplyの違いは何ですか?
-
[解決済み] javascript:void(0)」とは何ですか?
-
[解決済み] メソッドを廃止または非推奨としてマークする方法は?
-
[解決済み】JavaScript版sleep()とは?)
-
[解決済み】関数の前のエクスクラメーションマークは何をするのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
JSアレイループと効率解析の比較
-
JavaScriptにおけるマクロタスクとミクロタスクの詳細
-
jsを使った簡単な照明スイッチのコード
-
vue3.0プロジェクトのアーキテクチャを構築するための便利なツール
-
jQueryのコピーオブジェクトの説明
-
Vueのイベント処理とイベントモディファイアの解説
-
[解決済み】 `string.split is not a function` というエラーの原因は何ですか?
-
[解決済み】<select>で現在選択されている<option>をJavaScriptで取得するにはどうすればよいですか?
-
[解決済み】「.addEventListener is not a function」なぜこのエラーが発生するのか?
-
JSクリックイベント - Uncaught TypeError: プロパティ 'onclick' に null を設定できません。