2016-03-18 13 views
0

Ich beginne, Javascript durch Youtube zu lernen, und während ich diesen Code schreibe, sagt es, dass pageX undefined ist. Ich könnte wirklich eine Hilfe gebrauchen. Ich arbeite an einer Funktion, die eine Mausposition auf dem Bildschirm erfasst. Und bitte fragt nicht nach HTML, denn es ist nur ein Formular darin, sonst nichts.Javascript e.pageX undefined

Javascript:

var mie = (navigator.appName == "Microsoft Internet Explorer")?true:false; 

if (!mie) { 
    document.captureEvents(Event.MOUSEMOVE); 
    //document.captureEvents(Event.MOUSEDOWN); 
} 

document.onmousemove = pozicijaMisa(); 
//document.onmousedown = misKliknut(); 
var misKliknut = 0; 
var tipkaStisnuta = 0; 
var misX = 0; 
var misY = 0; 

function pozicijaMisa(e) { 
    if (!mie) { 
     misX = e.pageX; 
     misY = e.pageY; 
    } else { 
     misX =event.clientX + document.body.scrollLeft; 
     misY =event.clientY + document.body.scrollTop; 
    } 
    document.forma.misx.value = misX; 
    document.forma.misy.value = misY; 
    return true; 
} 
+0

Ich würde so etwas wie dies anstelle des veralteten YouTube Videos empfehlen: https://www.codecademy.com/learn/javascript – epascarello

Antwort

0

Nun, ich würde eine andere Tutorial finden, da sie veraltete Praktiken unterrichtet werden

Ihr Problem ist:

document.onmousemove = pozicijaMisa(); 

sollte eine Zuordnung sein, es nicht anrufen und Zuweisen, was es an den Event-Handler zurückgibt.

document.onmousemove = pozicijaMisa; 
+0

Dieser entfernte Fehler von e.pageX Teil, aber erscheint nun heraus auf dieser Linie von Code: document.forma.misx.value = misX; Sprich: java2.js: 40 Uncaught TypeError: Kann die Eigenschaft 'value' von undefined nicht setzen –

+0

Was ist der Fehler? Und hast du ein Formular mit diesem Input? – epascarello

+0

Sorry, habe das Problem gefunden, ich habe meinen Namen falsch geschrieben, S Danke für die Hilfe :) –

1

Sie tun Client Erkennung über navigator, die spröde ist.

Es wird Ihnen besser dienen, Feature-Erkennung in Javascript statt Client-Erkennung zu tun. Anstatt zu sehen, ob Sie IE verwenden, sehen Sie, ob pageX existiert (vor allem, weil neuere Versionen von IE nicht pageX verwenden).

document.addEventListener('mousemove', mousePosition); 
function mousePosition(e) { 
    var x = e['pageX'] || e.clientX; 
    var y = e['pageY'] || e.clientY; 
} 
Verwandte Themen