In einer mit Chrome erstellten Webanwendung kann die Simulation eines Keydown-Ereignisses für ein Textbereichselement zu Herausforderungen führen. Trotz des Versuchs, einen bestimmten Schlüsselcode anzugeben, empfängt der Textbereich möglicherweise einen falschen Schlüsselwert, z. B. die Eingabetaste anstelle der gewünschten Taste.
Um dieses Problem zu beheben, können Sie einen benutzerdefinierten Code verwenden, der sowohl die „ keyCode‘- und ‚which‘-Eigenschaften im ‚KeyboardEvent‘-Objekt. „keyCode“ ist eine veraltete Eigenschaft, die zugunsten von „which“ veraltet ist. Chrome verhält sich bei diesen Eigenschaften anders:
Der folgende Code bietet ein Beispiel dafür, wie ein Keydown-Ereignis mit dem richtigen „which“-Wert in Chrome simuliert wird:
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);
Dieser Code überschreibt die Eigenschaften „keyCode“ und „which“, um sicherzustellen, dass Chrome das Ereignis korrekt interpretiert und den gewünschten Schlüsselwert (77) für die Taste „m“ auslöst.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3