Heim  >  Artikel  >  Web-Frontend  >  Wie simuliere ich Tastaturereignisse in Safari mit dem richtigen Tastencode?

Wie simuliere ich Tastaturereignisse in Safari mit dem richtigen Tastencode?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-23 02:17:09853Durchsuche

How to Simulate Keyboard Events in Safari with the Correct Keycode?

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!

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