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
Mary-Kate OlsenOriginal
2024-11-13 08:37:02938Durchsuche

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

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

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!

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