在使用Chrome 建立的Web 應用程式中,在文字區域元素上模擬按鍵事件可能會遇到挑戰。儘管嘗試指定特定的 keyCode,文字區域可能會收到不正確的鍵值,例如 Enter 鍵而不是所需的鍵。
要解決此問題,您可以使用自訂程式碼來覆寫 ' “KeyboardEvent”物件中的“keyCode”和“which”屬性。 「keyCode」是遺留屬性,已被棄用,取而代之的是「which」。 Chrome 對這些屬性的行為有所不同:
以下程式碼提供如何在Chrome 中使用正確的'which' 值模擬keydown 事件的範例:
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' 和 'which' 屬性,確保 Chrome 正確解釋事件並觸發 'm' 鍵所需的鍵值 (77)。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3