Envoyer une frappe globale à l'aide de JavaScript dans FireFox / Greasemonkey

J'ai actuellement un script GM qui capture une frappe et clique sur un élément sur une page Web. Cependant, cela ne fonctionne que lorsque la page / l'onglet est focalisé. Existe-t-il un moyen de capturer la frappe à partir de la deuxième page / onglet et d'appliquer le clic sur un élément sur la première page / onglet? Je sais que je peux obtenir une référence à une autre fenêtre en l'ouvrant en JavaScript. Cependant, je ne peux pas accéder aux éléments de cette fenêtre si elle est sur un autre domaine. Si je ne peux pas le faire en utilisant Greasemonkey, des suggestions sur la façon de l'accomplir comme une extension au lieu d'un script GM. Vraiment, cette question est plus comment obtenir une référence à un onglet / fenêtre ouvert dans un script GM, ou comme une extension.

Voici l'exemple de code avec lequel je travaille:

function dispatchMouseEvent(target, event) { var e = document.createEvent("MouseEvents"); e.initMouseEvent(event, true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); target.dispatchEvent(e); }; function mouseClick(element) { dispatchMouseEvent(element, 'mouseover'); dispatchMouseEvent(element, 'mousedown'); dispatchMouseEvent(element, 'click'); dispatchMouseEvent(element, 'mouseup'); } 

Cela ne peut pas être fait dans JS ou Greasemonkey, par conception. Il s'agissait d'un énorme trou de sécurité. Vous devrez écrire une extension (add-on).

Voici quelques ressources supplémentaires, j'ai trouvé utile:

  • Page d'accueil des extensions Mozilla
  • Générateur de complément
  • 10 choses qu'ils ne vous racontent jamais dans Firefox Extension School
  • Développement d'extensions Firefox – Papier

Pouvez-vous précéder votre script GreaseMonkey avec un appel javascript vers window.focus() ?