6 votes

Comment générer un événement mousedown ou keypress de manière programmatique ?

Je suis en train de développer une extension pour Chrome qui exécute un peu de javascript sur une page web particulière.

Je veux simuler un clic sur les boutons 'précédent' et 'suivant' de la barre d'outils de la vue de présentation de Google Docs. Malheureusement, ils sont tous les deux des balises <div> avec des événements onmousedown correspondant à du javascript obscurci.

Si c'étaient des ancres, document.getElementById("ToolbarNext").onclick(); fonctionnerait. Cependant, la même chose pour onmousedown ne semble pas fonctionner, probablement parce que cela nécessite des coordonnées de la souris, etc. Comment puis-je générer cet événement ?

Une autre option est de simuler une pression sur la touche 'j' ou 'k' dans le DOM. J'ai essayé quelques options mais je n'ai pas réussi à comprendre cela non plus.

2voto

DrStrangeLove Points 2919

Essayer les méthodes dispatchEvent/fireEvent

-1voto

Mic Points 13418

Vous pouvez collecter la fonction qui est attachée à l'événement onmousedown et l'exécuter. Cependant, vous devrez recréer l'objet event si vous en avez besoin :

    var inp = document.getElementsByTagName('INPUT')[0],
        fn = inp.onmousedown;
        fn({target:inp/*, autres propriétés de l'objet d'événement si besoin */});

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X