5

Nie mogę znaleźć sposobu na uzyskanie współrzędnych zdarzenia w IE8, po prostu wywołuje błędy takie jak ... nieokreślony pageX, nieokreślony clientX itd. Chociaż działa to znaleźć w innych przeglądarkach.JavaScript: Współrzędne zdarzeń IE8

To, co starałem się zrobić:

document.onmousemove=setcoord; 

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

Czy istnieje obejście, aby uzyskać tę pozycję myszy ..

Odpowiedz

7

Poniższy wydaje się działać?. Nie jestem pewien, czy jest to właściwy sposób:

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

To prawda. Objaśnienie: Wcześniejsza wersja 9 Microsoft nie wdrożył modelu zdarzeń W3 DOM. Zamiast tego użyli zastrzeżonego modelu zdarzenia: detektory zdarzeń nie otrzymują żadnych argumentów; każda właściwość związana z zdarzeniem jest zdefiniowana w globalnym obiekcie 'event'. Ogólnym rozwiązaniem jest dodanie 'e = e || window.event; 'u góry detektora zdarzeń. –

+2

Dzięki, myślę, że dostaję to teraz, wciąż jest z tym jakiś problem, który polega na tym, że e.clientX nie uwzględnia przewijania i document.body.scrollLeft też nie działa w IE ... Mam na myśli Przewijam okno, w którym nie mam absolutnych współrzędnych, ale jest on powiązany z rzutnią. – Anonymous

+0

aight, documentElement wydaje się działać. :) EDYCJA: ** ALE ** to does not praca w chromie teraz ... oh noes .. – Anonymous