Maison >interface Web >js tutoriel >Comment simuler des événements de clavier dans Safari avec le bon code clé ?
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})
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!