[解決済み] ctrl+zキーの組み合わせをjavascriptでキャプチャする
2022-12-09 08:34:32
質問
私は ctrl + z このコードでjavascriptのキーコンビネーションができます。
<html>
<head>
<title>Untitled Document</title>
</head>
<body>
<script type='text/javascript'>
function KeyPress(e) {
var evtobj = window.event? event : e
//test1 if (evtobj.ctrlKey) alert("Ctrl");
//test2 if (evtobj.keyCode == 122) alert("z");
//test 1 & 2
if (evtobj.keyCode == 122 && evtobj.ctrlKey) alert("Ctrl+z");
}
document.onkeypress = KeyPress;
</script>
</body>
</html>
コメント行 "test1"を押さえるとアラートが発生します。 ctrl キーを押しながら他のキーを押すとアラートが発生します。
コメント行 "test2"を押すとアラートが発生します。 z キーを押すとアラートが発生します。
test 1 & 2"の後の行のように、それらを一緒にして、[quot]キーを押しながら ctrl キーを押しながら z キーを押しても、期待通りのアラートは発生しません。
コードのどこが問題なのでしょうか?
どのように解決するのですか?
-
使用方法
onkeydown
(またはonkeyup
) ではなくonkeypress
-
使用する
keyCode
90、122ではない
オンライン デモです。 http://jsfiddle.net/29sVC/
明確にするために キーコードは文字コードと同じではありません。
文字コードはテキストに対応します(エンコーディングによって異なりますが、多くの場合、0~127はASCIIコードのままです)。キーコードはキーボードのキーに対応します。例えば、ユニコードでは、0x22909は好を意味します。実際にこれに対応するキーを持つキーボードは(あったとしても)多くはないでしょう。
OSは、ユーザーが設定した入力メソッドを使って、キーストロークを文字コードに変換することを引き受けます。その結果は keypress イベントに送られます。(一方、keydown と keyup は、ユーザーがテキストを入力するのではなく、ボタンを押すことに反応します)。
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] JavaScriptのオブジェクトにキーが存在するかどうかをチェックする?
-
[解決済み】JavaScriptの比較では、どちらの等号演算子(== vs ===)を使うべきですか?
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] JavaScriptのtoString()関数をオーバーライドして、デバッグ用に意味のある出力を提供することは可能でしょうか?
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] JavaScriptで文字列を数値に変換する最速の方法は何ですか?
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] Promise : then vs then + catch [重複].
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法
-
[解決済み] Chrome拡張機能:popup.htmlを強制終了させる
-
[解決済み] JavaScriptでDIVを表示・非表示にするには?