Christian : Dynamische Navigation funktioniert nicht mit Opera 7

Beitrag lesen

Hallo SelfHTML-Team,

Mir ist gerade bei dem Beispiel für die dynamische Navigation (http://de.selfhtml.org/dhtml/beispiele/anzeige/navigation.htm) aufgefallen, dass diese mit Opera 7 nicht funktioniert (getestet mit Opera 7.54).
Die Ursache dafür scheint in Zeile 34 in der Funktion handleMove(ev) zu liegen:

32 function handleMove(ev) {
33 if(!MS) {
34   Event = ev;
35   if(Event.screenX < 270)
36     Menue();
37   else if(Event.screenX > 420)
38     noMenue();
39   }
40 }

Die Variable Event bleibt auch nach der Zuweisung für Opera vom Typ [object Event], während ev mit [object MouseEvent] angegeben wird. Opera scheint trotz der Zuweisung den Typ des Objekts nicht zu verändern (Bug?).
Wenn man Event mit var lokal deklariert funktioniert die Zuweisung jedoch problemlos. Ich habe nicht nachvollziehen können, warum Event als globale Variable verwendet wird. Falls Event global gebraucht wird wäre es auch möglich in handleMove ev.screenX abzufragen, so dass der Opera-Bug umgangen wird ohne Event lokal deklarieren zu müssen.
Beide Vorschläge funktionieren mit IE6, Netscape 7.1, Opera 7.54 und Opera 6.05.
Hier der gestestete, korrigierte Code des 2. Vorschlags:

32 function handleMove(ev) {
33 if(!MS) {
34   Event = ev;
35   if(ev.screenX < 270)
36     Menue();
37   else if(ev.screenX > 420)
38     noMenue();
39   }
40 }

Grüsse,
  Christian

--
Erfahrung ist die Summe der Dummheiten, die man im Bedarfsfall wieder anwendet. (Dieter Hildebrand, Kabarettist)