Beim Versuch, Tastaturereignisse in Safari mit herkömmlichen Ansätzen zu simulieren, stoßen Entwickler häufig auf Probleme, wenn Tastencodes auf Null gesetzt werden den gewünschten Wert. Es gibt jedoch eine zuverlässige Lösung mit JavaScripts DOM Keyboard Event Level 3 Polyfill.
Das DOM Keyboard Event Level 3 Polyfill ermöglicht Entwicklern das Erstellen und Versenden von Tastaturereignissen mit verbesserter Kompatibilität. Um diese Polyfüllung zu verwenden, befolgen Sie diese Schritte:
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);
Wenn Sie Legacy-Eigenschaften wie „keyCode“, „charCode“ und „which“ benötigen, wird die Polyfüllung vollständig aktualisiert unterstützt sie. Initialisieren Sie das KeyboardEvent einfach wie folgt:
var e = new KeyboardEvent("keydown", { bubbles : true, cancelable : true, char : "Q", key : "q", shiftKey : true, keyCode : 81 });
Für eine browserübergreifende Kompatibilität sollten Sie die Verwendung der folgenden alternativen initKeyboardEvent-Methode in Betracht ziehen:
function initKeyboardEvent(type, bubbles, cancelable, view, key, location, modifiersList, repeat, locale) { var evt = document.createEvent("KeyboardEvent"); evt.initKeyboardEvent(type, bubbles, cancelable, view, key, location, modifiersList, repeat, locale); return evt; }
Durch die Nutzung der DOM Keyboard Event Level 3 Polyfill oder der alternativen initKeyboardEvent-Methode können Sie jetzt zuverlässig erstellen und Tastaturereignisse in Safari auslösen, um eine genaue Weitergabe des Tastencodes sicherzustellen.
Das obige ist der detaillierte Inhalt vonWie simuliere ich Tastaturereignisse in Safari mit genauer Tastencode-Weitergabe?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!