ホームページ >ウェブフロントエンド >jsチュートリアル >Chrome でのキーダウン シミュレーション中の間違ったキー入力を解決する方法は?

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

Susan Sarandon
Susan Sarandonオリジナル
2024-10-18 12:39:03646ブラウズ

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 で正しい 'that' 値を使用してキーダウン イベントをシミュレートする方法の例を示しています。

<code class="js">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);</code>

このコードは、'keyCode' と ' what' プロパティを使用して、Chrome がイベントを正しく解釈し、「m」キーに必要なキー値 (77) をトリガーできるようにします。

以上がChrome でのキーダウン シミュレーション中の間違ったキー入力を解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。