Hallo,
nach längerer Zeit muß ich mich mal wieder in ein fremdes Javascript reinfummeln und hänge gerade ziemlich fest...
Aufgabe: An Punkten in einer Imagemap bei Mouseover einen je nach id gefüllten Layer einblenden.
Das Füllen klappt mit innerHTML ganz sauber, in IE und Mozilla, auch das Ein- und Ausblenden natürlich.
Mein Problem ist, daß ich die Mausposition via Eventüberwachung (captureEvents) nicht mit einem punktuellen Eventhandler kombiniert bekomme, und mir fällt nichts ein, wie ich sonst auf "onmouseover" meine Mausposition bekomme.
Ein kleines Script für die Mausposition von http://www.codelifter.com/main/javascript/capturemouseposition1.html habe ich mir modifiziert, so daß es in eine Funktion gekapselt ist und mir die Koordinaten zurückgeben soll:
var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEOVER)
tempX = 0;
tempY = 0;
function checkPos(e) {
if (IE) { // Mausposition für IE
tempX = event.clientX + document.body.scrollLeft;
tempY = event.clientY + document.body.scrollTop;
}
else { // Mausposition für Nicht-IE
tempX = e.pageX; // hier habe ich auch schon clientX (DOM?) versucht
tempY = e.pageY;
}
if (tempX < 0){tempX = 0;}
if (tempY < 0){tempY = 0;}
mousepos = new Array();
mousepos[0] = tempX;
mousepos[1] = tempY;
return mousepos;
}
Aufgerufen wird checkPos() aus einer anderen Funktion heraus, die das Ein/Ausblenden steuert und bei onmouseover auf den Punkt in der Imagemap aufgerufen wird.
Der IE 6 schluckt das ganze problemlos, und arbeitet mit den Rückgabewerten sauber weiter, aber beim Mozilla bekomme ich die Fehlermeldeung "e has no properties". Mir ist klar, daß der Haken in der Kombination der Ereignisüberwachung mit dem Eventhandler liegt, aber das Brett vor dem Kopf ist heute besonders dick - wer kann mir helfen? Vielleicht ist es ja auch nur ein kleiner Denkfehler. Ich kann leider im Moment kein Beispiel online stellen, wenn es gar nicht verständlich wurde, kann ich morgen einen Dummy basteln.
Danke für jeden Hinweis!
Gruß aus Köln-Ehrenfeld,
Elya
"Alle mal an die Nase fassen, und zwar an die eigene": </archiv/2003/9/57903/#m324482>
_____________
elyas virtuelle Altbauwohnung: http://www.visuelya.de