5

Non riesco a trovare un modo per ottenere le coordinate dell'evento in IE8, si innesca solo errori come ... pageX indefinito, clientX non definito ecc. Mentre funziona, trova in altri browser.Javascript: Coordinate evento IE8

questo è quello che stavo cercando di fare:

document.onmousemove=setcoord; 

function setcoord(e){ 
    var xxcoord = e.pageX||(e.clientX+document.body.scrollLeft); 
    var yycoord = e.pageY||(e.clientY+document.body.scrollTop); 
} 

C'è qualche soluzione per ottenere che la posizione del mouse ..

risposta

7

Il seguente sembra funzionare?. Non sono sicuro che sia il modo corretto per farlo:

var x=event.clientX; 
var y=event.clientY; 
+2

Questo è corretto. Spiegazione: prima IE 9, Microsoft non implementava il modello di eventi W3 DOM. Invece, hanno usato un modello di eventi proprietario: i listener di eventi non ricevono alcun argomento; qualsiasi proprietà correlata all'evento è definita sull'oggetto 'event' globale. Una soluzione generica è aggiungere 'e = e || window.event; 'all'inizio del listener di eventi. –

+2

Grazie, penso di averlo capito ora, c'è ancora un problema con quello che è che e.clientX non tiene conto dello scrolling e document.body.scrollLeft non sembra funzionare in IE neanche ... Voglio dire se Scorrendo la finestra non mi vengono le coordie assolute ma legate al viewport. – Anonymous

+0

aight, documentElement sembra funzionare. :) EDIT: ** MA ** non funziona in Chrome ora ... oh noes .. – Anonymous