Maison > interface Web > js tutoriel > Comment simuler des événements de clavier dans Safari avec le bon code clé ?

Comment simuler des événements de clavier dans Safari avec le bon code clé ?

Mary-Kate Olsen
Libérer: 2024-11-23 02:17:09
original
878 Les gens l'ont consulté

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

Comment distribuer un événement de clavier dans Safari à l'aide de JavaScript

En JavaScript, la simulation d'événements de clavier peut s'avérer problématique, en particulier dans Safari. Ce problème survient lorsque vous tentez de définir un code clé spécifique ou des propriétés dans votre objet événement. Au lieu de cela, ces propriétés sont définies par défaut sur 0, ce qui entrave l'exécution transparente de votre logique de simulation d'événements.

Pour résoudre ce problème, une solution fiable consiste à utiliser le polyfill DOM Keyboard Event Level 3. En implémentant ce polyfill, vous pouvez tirer parti d'une syntaxe améliorée qui vous permet de définir directement les propriétés key, char et shiftKey. De plus, il prend en charge la définition de propriétés héritées telles que « keyCode », « charCode » et « which », offrant une compatibilité avec les anciens navigateurs :

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})
Copier après la connexion

En tirant parti du polyfill, vous pouvez désormais distribuer efficacement les événements de clavier. avec les valeurs keyCode souhaitées, garantissant une simulation d'événement fiable dans Safari.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal