So lösen Sie ein Tastaturereignis in Safari mit JavaScript aus
In JavaScript kann sich die Simulation von Tastaturereignissen als problematisch erweisen, insbesondere in Safari. Dieses Problem tritt auf, wenn Sie versuchen, einen bestimmten Schlüsselcode oder welche Eigenschaften in Ihrem Ereignisobjekt festzulegen. Stattdessen sind diese Eigenschaften standardmäßig auf 0 gesetzt, was die nahtlose Ausführung Ihrer Ereignissimulationslogik behindert.
Um dieses Problem zu beheben, besteht eine zuverlässige Lösung in der Verwendung der DOM Keyboard Event Level 3-Polyfüllung. Durch die Implementierung dieser Polyfüllung können Sie eine verbesserte Syntax nutzen, die es Ihnen ermöglicht, die Eigenschaften key, char und shiftKey direkt zu definieren. Darüber hinaus unterstützt es die Definition von Legacy-Eigenschaften wie „keyCode“, „charCode“ und „which“ und bietet so Kompatibilität mit älteren Browsern:
element.addEventListener("keydown", function(e){ console.log(e.key, e.char, e.keyCode) }) var e = new KeyboardEvent("keydown", {bubbles : true, cancelable : true, key : "Q", char : "Q", shiftKey : true}); element.dispatchEvent(e); //If you need legacy property "keyCode" // Note: In some browsers you can't overwrite "keyCode" property. (At least in Safari) delete e.keyCode; Object.defineProperty(e, "keyCode", {"value" : 666})
Durch die Nutzung der Polyfüllung können Sie jetzt Tastaturereignisse effektiv auslösen mit den gewünschten keyCode-Werten, um eine zuverlässige Ereignissimulation in Safari zu gewährleisten.
Das obige ist der detaillierte Inhalt vonWie simuliere ich Tastaturereignisse in Safari mit dem richtigen Tastencode?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!