「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Chrome でのキーダウン シミュレーション中の間違ったキー入力を解決する方法は?

Chrome でのキーダウン シミュレーション中の間違ったキー入力を解決する方法は?

2024 年 11 月 3 日に公開
ブラウズ:841

How to Resolve Incorrect Key Input During Keydown Simulation in Chrome?

Chrome でのキーダウン シミュレーション: 不正なキー入力のトラブルシューティング

Chrome を使用して構築された Web アプリケーションでは、textarea 要素でのキーダウン イベントをシミュレートすると問題が発生する可能性があります。特定の keyCode を指定しようとしても、テキストエリアは、目的のキーではなく Enter キーなど、間違ったキー値を受け取ることがあります。

この問題を解決するには、両方の ' をオーバーライドするカスタム コードを使用できます。 「KeyboardEvent」オブジェクトの「keyCode」プロパティと「what」プロパティ。 「keyCode」は、「this」を優先するために非推奨になったレガシー プロパティです。 Chrome は次のプロパティで異なる動作をします:

  • Firefox または Safari では 'keyCode' のみオーバーライドする必要があります。
  • Chrome では、'keyCode' と 'that' の両方をオーバーライドする必要があります。

次のコードは、Chrome で正しい 'what' 値を使用してキーダウン イベントをシミュレートする方法の例を示しています。

var keyEvent = document.createEvent('KeyboardEvent');

// Override 'keyCode' and 'which' properties
Object.defineProperty(keyEvent, 'keyCode', { get: function() { return this.keyCodeVal; } });
Object.defineProperty(keyEvent, 'which', { get: function() { return this.keyCodeVal; } });

keyEvent.initKeyboardEvent('keydown', true, false, null, 0, false, 0, false, 77, 0);
keyEvent.keyCodeVal = 77;
inputNode.dispatchEvent(keyEvent);

このコードは、'keyCode' プロパティと 'what' プロパティをオーバーライドし、Chrome がイベントを正しく解釈し、'm' キーに必要なキー値 (77) をトリガーすることを保証します。 &&&]

リリースステートメント この記事は次の場所に転載されています: 1729225517 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3