Heim > Web-Frontend > js-Tutorial > Wie erstelle ich zuverlässig Tastaturereignisse in Safari mit JavaScript?

Wie erstelle ich zuverlässig Tastaturereignisse in Safari mit JavaScript?

Mary-Kate Olsen
Freigeben: 2024-11-13 08:37:02
Original
930 Leute haben es durchsucht

How to Reliably Create Keyboard Events in Safari using JavaScript?

Erstellen von Tastaturereignissen in Safari mit JavaScript

Das Simulieren von Tastaturereignissen in Safari mit JavaScript kann sich als Herausforderung erweisen, wie Ihre Versuche, das Dokument zu verwenden, gezeigt haben .createEvent. Das Problem ist auf das inkonsistente Verhalten der keyCode-Eigenschaft zurückzuführen, die trotz Ihrer Bemühungen, sie auf 115 zu setzen, auf 0 initialisiert wird.

Um dieses Problem zu beheben, empfehlen wir die Verwendung des DOM Keyboard Event Level 3-Polyfills, das JavaScripts verbessert Ereignismodell zur Unterstützung moderner Browser und bietet Abwärtskompatibilität für Legacy-Eigenschaften.

Mit dieser Polyfüllung können Sie Tastaturereignisse wie folgt erstellen:

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})
Nach dem Login kopieren

Die Polyfüllung unterstützt Legacy-Eigenschaften wie keyCode, charCode , und die es Ihnen ermöglichen, diese Eigenschaften direkt anzugeben:

var e = new KeyboardEvent("keydown", {
    bubbles : true,
    cancelable : true,
    char : "Q",
    key : "q",
    shiftKey : true,
    keyCode : 81
});
Nach dem Login kopieren

Darüber hinaus finden Sie eine browserübergreifende Version von initKeyboardEvent in einem separaten Gist.

Durch die Verwendung dieser Techniken können Sie kann zuverlässig Tastaturereignisse in Safari erstellen und versenden und so ein konsistentes Verhalten in verschiedenen Browsern gewährleisten.

Das obige ist der detaillierte Inhalt vonWie erstelle ich zuverlässig Tastaturereignisse in Safari mit JavaScript?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage