首頁 >web前端 >js教程 >如何解決Chrome中Keydown模擬過程中按鍵輸入不正確的問題?

如何解決Chrome中Keydown模擬過程中按鍵輸入不正確的問題?

Susan Sarandon
Susan Sarandon原創
2024-10-18 12:39:03642瀏覽

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

Chrome 中的按鍵模擬:排除不正確的按鍵輸入故障

在使用Chrome 建構的Web 應用程式中,在文字區域元素上模擬按鍵事件可能會遇到挑戰。儘管嘗試指定特定的 keyCode,文字區域可能會收到不正確的鍵值,例如 Enter 鍵而不是所需的鍵。

要解決此問題,您可以使用自訂程式碼來覆寫 ' “KeyboardEvent”物件中的“keyCode”和“which”屬性。 「keyCode」是遺留屬性,已被棄用,取而代之的是「which」。 Chrome 對這些屬性的行為有所不同:

  • 在 Firefox 或 Safari 中只需要覆蓋「keyCode」。
  • 在 Chrome 中,您需要覆蓋「keyCode」和「which」。

以下程式碼提供如何在Chrome 中使用正確的'which' 值模擬keydown 事件的範例:

<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' 和' which' 屬性,確保Chrome 正確解釋事件並觸發'm' 鍵所需的鍵值(77)。

以上是如何解決Chrome中Keydown模擬過程中按鍵輸入不正確的問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn