Bonjour à tous,

Je me suis intéressé à DOM, et en particulier à la méthode "event.initMouseEvent":
initMouseEvent( 'type', bubbles, cancelable, windowObject, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget )

Un essai fait dans une page avec une checkbox par exemple fonctionne très bien.

Mais je m'interroge sur l'utilisation de screenX et screenY. En effet, la description laisse supposer qu'un clic peut être fait de manière indépendante des élements de la page, juste en fournissant les coordonnées: on peut donc faire un click sur un point (100px,100px), quel que soit ce qui se trouve dessous.

Sauf que le déclenchement se fait par la méthode "dispatchEvent()" qui elle, si j'ai bien compris, est forcement rattachée à un objet du document (bouton, checkbox, ...).

Donc, si j'ai un document quelconque, et que je souhaite simuler un clic au point (100px,100px,), à quoi dois-je attacher le "dispatchEvent" ?

Voici un essai avec une attache sur le document, mais ça marche pô ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html dir="ltr" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 
<script type="text/javascript">
function simulateClick() {
  var evt = document.createEvent("MouseEvents");
  evt.initMouseEvent("click", true, true, document,
    1, 100, 100, 0, 0, false, false, false, false, 0, null);
  var cb = document.dispatchEvent(evt);
}
function testClick() {
	alert("ok");
}
</script>
 
</head><body>
<input onclick="testClick();" value="test" type="button" style="width:300px;height:300px">
<input onclick="simulateClick();" value="Simulate click" type="button">
</body></html>


Merci de votre attention,
Openmind