Christian : Dynamische Navigation funktioniert nicht mit Opera 7

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)
  1. hi,

    schön, dass du dir die mühe gemacht hast, eine lösung des problems zu erarbeiten.

    bitte sei doch auch so nett, und melde diesen fehler an der "richtigen" stelle, unter http://de.selfhtml.org/editorial/fehlermeldungen.htm

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hallo,

      bitte sei doch auch so nett, und melde diesen fehler an der "richtigen" stelle, unter http://de.selfhtml.org/editorial/fehlermeldungen.htm

      Gerne. Ich habe nur irgendwie die die URL nicht mehr gefunden. Ich hatte in die FAQ geschaut aber an das Editorial natürlich nicht gedacht... Danke für den Hinweis.

      Grüsse,
        Christian

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

        Gerne. Ich habe nur irgendwie die die URL nicht mehr gefunden. Ich hatte in die FAQ geschaut aber an das Editorial natürlich nicht gedacht... Danke für den Hinweis.

        tipp: ich habe einfach auf der hauptseite von selfhtml den link "inhaltsverzeichnis" angeklickt, und dort dann per [strg]+[f] nach "fehler" gesucht (obwohls so weit oben steht, dass es auch so schon ins auge fallen sollte).

        ;-)

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
  2. Hi Christian,

    http://de.selfhtml.org/dhtml/beispiele/anzeige/navigation.htm

    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 }

    vielen Dank für den Hinweis, ich habe es bereits eingebaut. SELFHTML 8.1 wird deine Korrektur enthalten. :-)

    Grüße,
     Roland