在使用Chrome 建構的Web 應用程式中,在文字區域元素上模擬按鍵事件可能會遇到挑戰。儘管嘗試指定特定的 keyCode,文字區域可能會收到不正確的鍵值,例如 Enter 鍵而不是所需的鍵。
要解決此問題,您可以使用自訂程式碼來覆寫 ' “KeyboardEvent”物件中的“keyCode”和“which”屬性。 「keyCode」是遺留屬性,已被棄用,取而代之的是「which」。 Chrome 對這些屬性的行為有所不同:
以下程式碼提供如何在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中文網其他相關文章!