Est-il possible d'utiliser des coordonnées données pour simuler un clic en JavaScript dans une page Web?
Vous pouvez envoyer un événement click , bien que ce ne soit pas la même chose qu'un clic réel. Par exemple, il ne peut pas être utilisé pour tromper un document iframe interdomaine en lui faisant croire qu'il a été cliqué.
Tous les navigateurs modernes supportent document.elementFromPoint
Et HTMLElement.prototype.click()
, depuis au moins IE 6, Firefox 5, toute version de Chrome et probablement toutes les versions de Safari qui vous intéressent. Elle suivra même des liens et soumettra des formulaires:
document.elementFromPoint(x, y).click();
https://developer.mozilla.org/En/DOM:document.elementFromPointhttps://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/ cliquez
Oui, vous pouvez simuler un clic de souris en créant un événement et en le distribuant:
function click(x,y){
var ev = document.createEvent("MouseEvent");
var el = document.elementFromPoint(x,y);
ev.initMouseEvent(
"click",
true /* bubble */, true /* cancelable */,
window, null,
x, y, 0, 0, /* coordinates */
false, false, false, false, /* modifier keys */
0 /*left*/, null
);
el.dispatchEvent(ev);
}
Attention à l’utilisation de la méthode click
sur un élément - elle est largement implémentée mais pas standard et échouera par ex. PhantomJS. Je suppose que l'implémentation de .click()
par jQuery fait ce qu'il faut, mais n'a pas été confirmée.
Ceci est juste réponse de torazaburo , mis à jour pour utiliser un objet MouseEvent.
function click(x, y)
{
var ev = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': true,
'screenX': x,
'screenY': y
});
var el = document.elementFromPoint(x, y);
el.dispatchEvent(ev);
}
Pour des raisons de sécurité, vous ne pouvez pas déplacer le pointeur de la souris avec JavaScript ni simuler un clic avec celui-ci.
Qu'est-ce que vous essayez d'accomplir?