Tir d'un Événement de Clavier en JavaScript

Je suis en train de simuler un événement de clavier en Safari à l'aide de JavaScript.

J'ai essayé ceci:

var event = document.createEvent("KeyboardEvent");
event.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 115, 0);

...et aussi ceci:

var event = document.createEvent("UIEvents");
event.initUIEvent("keypress", true, true, window, 1);
event.keyCode = 115;

Après avoir essayé les deux approches, cependant, j'ai le même problème: une fois que le code a été exécuté, le keyCode/which propriétés de l'objet d'événement sont mis à 0, pas 115.

Personne ne sait comment fiable pour créer et envoyer un événement de clavier dans Safari? (Je préfère la réaliser dans la plaine du JavaScript, si possible.)

  • Êtes-vous essayer d'exécuter du code que vous avez défini ou certains de combinaison de touche le navigateur comprend? Si c'est votre propre code, il peut être préférable à l'installation d'un wrapper d'événement que vous pouvez appeler via un "vrai" clavier de l'interface ou via un autre événement générateur, comme vous l'avez décrit ici. Le Refactoring, selon le cas.
  • Dans cet exemple, je suis en train de simuler l'utilisateur en appuyant sur "s". En fin de compte, je suis en train de simuler l'utilisateur en appuyant sur Commande-R dans un Apple Dashboard Widget.
  • Votre code a résolu mon problème 🙂
  • Mon plaisir! 🙂
  • Cela peut être utile: jquery.keymasher.
  • Double de Simuler le JavaScript Événements Clés
  • Selon le spec., seulement key et code sont pris en charge.