J'ai joint un écouteur de mise au point à la fenêtre (en utilisant la syntaxe prototype):déterminer la position de la souris sur un événement de mise au point de la fenêtre
Event.observe(window, 'focus', focusCb.bindAsEventListener(this));
Je veux déterminer la position de la souris lorsque la fenêtre se concentre. Malheureusement, dans ma méthode focusCb, je ne semble pas avoir accès à pageX, pageY, clientX ou clientY.
En utilisant quirksmode code:
function doSomething(e) {
var posx = 0;
var posy = 0;
if (!e) var e = window.event;
if (e.pageX || e.pageY) {
posx = e.pageX;
posy = e.pageY;
}
else if (e.clientX || e.clientY) {
posx = e.clientX + document.body.scrollLeft
+ document.documentElement.scrollLeft;
posy = e.clientY + document.body.scrollTop
+ document.documentElement.scrollTop;
}
// posx and posy contain the mouse position relative to the document
// Do something with this information
}
Je reçois toujours 0, 0.
Je pensais que l'événement de mise au point aurait des informations de position de la souris. Pourquoi l'événement de focus n'a-t-il pas cette information?
- Plus important encore, comment devrais-je obtenir la position de la souris lorsque la fenêtre est mise au point?
événements de discussion peuvent se produire avant que la souris a été « planait » dans la fenêtre par le système d'exploitation. Ainsi, il n'a pas de position. –