Comment faire pour simuler un clic en utilisant les coordonnées x,y en JavaScript?
Est-il possible d'utiliser des coordonnées données dans le but de simuler un clic en JavaScript dans une page web?
- Quel est votre objectif? 🙂 Êtes-vous essayer de simuler un clic sur une image map, par exemple?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez envoyer un cliquez sur événement, si ce n'est pas le même comme un véritable déclic. Par exemple, il ne peut pas être utilisé pour tromper l'inter-domaine iframe document en pensant qu'il a été cliqué.
Tous les navigateurs modernes soutien
document.elementFromPoint
etHTMLElement.prototype.click()
, au moins depuis IE 6, Firefox 5, n'importe quelle version de Chrome et probablement une version de Safari, vous êtes susceptible de les préoccuper. Il va même jusqu'à suivre les liens et de soumettre des formulaires:https://developer.mozilla.org/En/DOM:document.elementFromPoint
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click
document.elementFromPoint(916, 263).click()
à partir de la console. Maintenant faites la même chose dans Chrome. La redirection de la page de Google dans Chrome, mais rien ne se passe dans Firefox.Oui, vous pouvez simuler un clic de souris, par la création d'un événement et il l'envoi:
Méfiez-vous de l'utilisation de la
click
méthode sur un élément -- il est largement mis en œuvre, mais pas standard et échoue dans, par exemple, PhantomJS. Je suppose jQuery mise en œuvre de l'.click()
fait la bonne chose, mais n'ont pas confirmé.$.click()
initMouseEvent
a été désapprouvée: developer.mozilla.org/en-US/docs/Web/API/MouseEvent/...click(916,263)
.initMouseEvent
vous pouvez utiliservar event = new MouseEvent( "click", { clientX: x, clientY: y, bubbles: true } )
C'est aussi indiqué dans le stackoverflow.com/a/36144688/384670.C'est juste torazaburo réponse, mis à jour pour utiliser un objet MouseEvent.
Pour des raisons de sécurité, vous ne pouvez pas déplacer le pointeur de la souris avec le javascript, ni simuler un clic avec elle.
Qu'est-ce que vous essayez d'accomplir?
createEvent()
+initMouseEvent()