Je connais la document.form.button.click()
méthode. Cependant, j'aimerais savoir comment simuler l' onclick
événement.
J'ai trouvé ce code quelque part ici sur Stack Overflow, mais je ne sais pas comment l'utiliser :(
function contextMenuClick()
{
var element= 'button'
var evt = element.ownerDocument.createEvent('MouseEvents');
evt.initMouseEvent('contextmenu', true, true,
element.ownerDocument.defaultView, 1, 0, 0, 0, 0, false,
false, false, false, 1, null);
element.dispatchEvent(evt);
}
Comment déclencher un événement de clic de souris à l'aide de JavaScript?
javascript
dom-events
mouseclick-event
Nok Imchen
la source
la source
Réponses:
(Version modifiée pour le faire fonctionner sans prototype.js)
Vous pouvez l'utiliser comme ceci:
Notez qu'en tant que troisième paramètre, vous pouvez passer des «options». Les options que vous ne spécifiez pas sont tirées des options par défaut (voir en bas du script). Donc, si vous voulez par exemple spécifier les coordonnées de la souris, vous pouvez faire quelque chose comme:
Vous pouvez utiliser une approche similaire pour remplacer d'autres options par défaut.
Les crédits devraient aller à kangax . Voici la source originale (spécifique à prototype.js).
la source
Voici une fonction JavaScript pure qui simulera un clic (ou tout événement de souris) sur un élément cible:
Voici un exemple de travail: http://www.spookandpuff.com/examples/clickSimulation.html
Vous pouvez simuler un clic sur n'importe quel élément du DOM . Quelque chose comme ça
simulatedClick(document.getElementById('yourButtonId'))
fonctionnerait.Vous pouvez passer un objet dans
options
pour remplacer les valeurs par défaut (pour simuler le bouton de la souris souhaité, si Shift/ Alt/ Ctrlsont maintenus, etc. Les options qu'il accepte sont basées sur l' API MouseEvents .J'ai testé dans Firefox, Safari et Chrome. Internet Explorer pourrait nécessiter un traitement spécial, je ne suis pas sûr.
la source
type: options.click || 'click'
devrait probablement l'êtretype: options.type || 'click'
.<div id = "outer"><div id = "inner"></div></div> simulatedClick(document.getElementById('outer'));
ne cliquera pas sur l'élément intérieur.div
contenait un bouton ou un lien - vous ne voudriez pas qu'un clic sur l'extérieur déclenche un clic sur l'élément intérieur.||
opérateur pour des cas comme celui-ci, car oups, il estcanBubble:options.canBubble || true,
toujours évalué à vrai maintenant, et apparemment personne ne le remarquera pendant 5 ans.Un moyen plus simple et plus standard de simuler un clic de souris serait d'utiliser directement le constructeur d'événement pour créer un événement et le distribuer.
Démo: http://jsfiddle.net/DerekL/932wyok6/
Cela fonctionne sur tous les navigateurs modernes. Pour les anciens navigateurs, y compris IE,
MouseEvent.initMouseEvent
devra être utilisé malheureusement bien qu'il soit obsolète.la source
Dans la documentation de Mozilla Developer Network (MDN), HTMLElement.click () est ce que vous recherchez. Vous pouvez découvrir plus d'événements ici .
la source
Sur la base de la réponse de Derek, j'ai vérifié que
fonctionne comme prévu même avec les modificateurs de clé. Et ce n'est pas une API obsolète, pour autant que je puisse le voir. Vous pouvez également vérifier sur cette page .
la source
Vous pouvez utiliser elementFromPoint :
pris en charge dans tous les navigateurs: https://caniuse.com/#feat=element-from-point
la source
Code JavaScript
Code HTML
la source