Dynamische Navigation funktioniert nicht mit Opera 7
Christian
- javascript
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
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
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
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
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