Mauszeigerposition für Firefox und IE auslesen

Guten Morgen,

ich habe ein Problem mit Firefox, und zwar möchte ich, dass bei speziellen Links, neben dem Mauszeiger eine kleine Erläuterung angezeigt wird, was bei Opera und IE auch wunderbar, mit dem nachstehenden Quelltest funktioniert.

Nur bei Firefox klappt es nicht!?

Zum Quelltest: Ich habe erst eine Fallunterscheidung gemacht, ob es sich um einen Netscape-basierten Browser handelt oder um einen IE-basierten. So dass mein Problem im Wenn-Teil der if-Abfrage steckt:
positionX = bewegung.layerX;
positionY = bewegung.layerX;
Der else-Teil, also der der auf IE-basiert funktioniert super.

Ich würde mich freuen, wenn mir jemand helfen kann.

function zeigenAnMaus(ID)
{
var positionX = 0;
var positionY = 0;
var bewegung = window.event;

if (navigator.userAgent.toLowerCase().indexOf(„mozilla“)!= -1 && navigator.userAgent.toLowerCase().indexOf(„compatible“)== -1 && navigator.userAgent.toLowerCase().indexOf(„opera“)== -1)
{
positionX = bewegung.layerX;
positionY = bewegung.layerX;
}
else
{
if (bewegung.pageX || bewegung.pageY)
{
positionX = bewegung.pageX;
positionY = bewegung.pageY;
}
else
{
if (bewegung.clientX || bewegung.clientY)
{
positionX = bewegung.clientX + document.body.scrollLeft + document.documentElement.scrollLeft + 5;
positionY = bewegung.clientY + document.body.scrollTop + document.documentElement.scrollTop + 5;
}
}
}

document.getElementById(ID).style.left = positionX + ‚px‘;
document.getElementById(ID).style.top = positionY + ‚px‘;
}

Ich hoffe der Quelltext war hilfreich.

LG Daniel

Guten Morgen,

ich habe ein Problem mit Firefox, und zwar möchte ich, dass
bei speziellen Links, neben dem Mauszeiger eine kleine
Erläuterung angezeigt wird, was bei Opera und IE auch
wunderbar, mit dem nachstehenden Quelltest funktioniert.

Nur bei Firefox klappt es nicht!?

Zum Quelltest: Ich habe erst eine Fallunterscheidung gemacht,
ob es sich um einen Netscape-basierten Browser handelt oder um
einen IE-basierten. So dass mein Problem im Wenn-Teil der
if-Abfrage steckt:
positionX = bewegung.layerX;
positionY = bewegung.layerX;
Der else-Teil, also der der auf IE-basiert funktioniert super.

Ich würde mich freuen, wenn mir jemand helfen kann.

gelöscht

Ich hoffe der Quelltext war hilfreich.

LG Daniel

Hallo Daniel,

ist es Zufall, dass hier in der zweiten Zeil kein Y steht?

 positionX = bewegung.layerX;
 positionY = bewegung.layerX;

Nach allen Regeln der Logik sollte dies so lauten.

 positionX = bewegung.layerX;
 positionY = bewegung.layerY; 

MfG Georg V.

Hallo Georg

positionX = bewegung.layerX;
positionY = bewegung.layerY;

Das ist versehendlich passiert, aber es ändert leider nichts an der Funtionalität.

Also ich warte auf weitere Hinweise.

Gruß Daniel

Hi.

ich habe ein Problem mit Firefox, und zwar möchte ich, dass
bei speziellen Links, neben dem Mauszeiger eine kleine
Erläuterung angezeigt wird, was bei Opera und IE auch
wunderbar, mit dem nachstehenden Quelltest funktioniert.

Nur bei Firefox klappt es nicht!?

Dein Problem ist, dass Du nur die IE-Methode
berücksichtigst, um das Mausevent abzufragen:

var bewegung = window.event;

Im Standardereignismodell, welches u.a. Netscape-Browser verwenden, wird das Mausevent dagegen automatisch dem Event-Handler als Funktionsargument übergeben ,
anstatt es in eine „globale Variable“ zu schreiben.

Es sollten also immer beide Versionen getestet werden:

function zeigenAnMaus(ID, ereignis)
{ 
 var bewegung = ereignis || window.event;
 ...

Zu solchen Fragen gibt übrigens die „JavaScript-Bibel“
http://www.oreilly.de/catalog/jscript5ger/
erschöpfend Auskunft.

Gruß,
-Andreas