Hallo
Ich scheitere total bei JavaScript die Mauszeiger-Koords in einem Div-Tag darzustellen.
Kurze Vorab-Info
Da ich es unter Vista nicht hin bekam WinAMP zu nutzen, habe ich MS WebMatix installiert, um auch php-Code lokal prüfen zu können.
Die Seite die mir Probleme bereitet, wird (bzw. wurde) bei lokalem Test im FireFox und MSIE korrekt dargestellt. Mauszeiger-Koords wurden also angezeigt. Die Problem-Seite(n) können angezeigt werden über diesen Link: http://reduit.bplaced.net/Spiele/HdRO/Taten/index.htm.
Im Kopf der Seite sind nur diese Links relevant, da nur bei diesen Links die Problem-Seite (eine php-Datei mit dem JavaScript-Code): "Nordhöhen Trollhöhen Nebelgebirge"aufgerufen wird.
Ein klick auf diese Links läßt im unteren Frame jeweils eine andere Karte eines Spiels anzeigen.
Der JavaScript-Code sollte, wenn man mit der Maus über die Karte fährt, unterhalb der Karte die Koordinaten der Karte anzeigen, aber nicht die Pixel-Koords der Mausposition auf der Abb., sondern die Koords wie sie im Spiel sind, deshalb werden die Koords umgerechnet.
Wie gesagt hatte beim lokalen Test alles einwandfrei funktioniert. Nach dem Hochladen auf den Live-Server konnte weder FireFox noch MSIE die Korrds anzeigen.
Inzw. habe ich fast 3 Stunden mit googlen und allem möglichen hin- und herprobieren mit Tips aus dem Internet verbracht, und nun werden die Koords nicht mal mehr oder falsch lokal angezeigt.
Die Live-Server-Version zeigt im FF in der Fehlerkonsole kein Fehler an, ebenso wird bei MSIE kein Fehler angezeigt und auch das lokale php-Errorlog-File zeigt keinen Fehler.
Ich habe bisher meist rumprobiert mit
- Nutzung eines anderen DocTypes in der erzeugten Html-Seite
- Lt. diversen Infos im Internet sollte man bei document.getElementById( “…”).inner HTML besser “.firstChild.data” nutzen. Das funktioniert garnicht, d.h. wenn ich “.firstChild.data” benutze, wird garnichts angezeigt. Mit “.innerHTML” werden die Koords immer mit 0 angezeigt.
Soweit ich durchsteige scheint bei lokalem Test
var xy = getEventOffsetXY (evt);
in der Variablen xy auch ein Wert zu sein, aber wenn ich die Seite hochlade, ist dort immer nur der Wert 0 drin.
Der Live-Zustand der php-Datei entspricht meinen lokalen Zustand und lokal wird die Datei in FF + MSIE korrekt mit Koords angezeigt.
Hier die JavaScript-Funktionen die ich nutze:
function showPos(evt) {
var xy = getEventOffsetXY (evt);
var v1 = Einstellig( ((Map_Height * xy[1]) / 502) + Number(Map_Top) );
var v2 = Einstellig( Map_Width - (( Map_Width * xy[0]) / 870) + Number(Map_Right) );
LogoKoords = " ";
document.getElementById( “xyPos” ).innerHTML = LogoKoords + v1 + "v " + v2 + “h”;
};
function getEventOffsetXY (evt) {
if ( evt.offsetX != null )
return [ evt.offsetX , evt.offsetY ];
var obj = evt.target || evt.srcElement;
setPageTopLeft( obj );
return [ ( evt.clientX - obj.pageLeft ) , ( evt.clientY - obj.pageTop ) ];
};
function setPageTopLeft (o) {
var top = 0,
left = 0,
obj = o;
while ( o.offsetParent ) {
left += o.offsetLeft ;
top += o.offsetTop ;
o = o.offsetParent ;
};
obj.pageTop = top;
obj.pageLeft = left;
};
function clearInfo (evt) { document.getElementById( “xyPos” ).innerHTML = " "; }