Um Keydown-Ereignisse für ein bestimmtes Textbereichselement in Chrome zu simulieren, sollten Sie die Methode initKeyboardEvent verwenden. Der ursprüngliche Code, den Sie angegeben haben, hat jedoch ein anderes Ergebnis erhalten – den Enter-Tastencode anstelle des vorgesehenen M-Tastencodes.
Um dies zu korrigieren, müssen Sie sowohl den keyCode als auch die which-Eigenschaften des KeyboardEvent-Objekts überschreiben. Hier ist der aktualisierte Code:
<code class="javascript">var keyEvent = document.createEvent('KeyboardEvent'); // Override both keyCode and which 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>
Durch das Überschreiben beider Eigenschaften stellen Sie sicher, dass der Browser den richtigen Schlüsselcodewert empfängt. Diese Lösung simuliert effektiv das Tastendruckereignis für die angegebene Taste, sodass Sie die gewünschte Funktionalität erreichen können.
Das obige ist der detaillierte Inhalt vonWie werden Keycodes für Keydown-Simulationen in Chrome korrekt angegeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!