Heim >Web-Frontend >js-Tutorial >Wie simuliere ich Tastaturereignisse in Safari mit genauer Tastencode-Weitergabe?

Wie simuliere ich Tastaturereignisse in Safari mit genauer Tastencode-Weitergabe?

Barbara Streisand
Barbara StreisandOriginal
2024-12-06 06:50:11308Durchsuche

How to Simulate Keyboard Events in Safari with Accurate Key Code Propagation?

Tastaturereignisse in Safari mit JavaScript simulieren

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.

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);

Legacy-Eigenschaften

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
});

Alternative Optionen

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;
}

Fazit

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn