Unterschiedliche Darstellung; IE<>FireFox; eventim.de

  • Hallo,

    wenn ich die Seite http://www.eventim.de besuche erscheint oben eine Menüleiste mit "Concerts, Classical, Sports, etc..."

    Wenn ich nun den Mauszeiger über "Concerts" bewege erscheit im IE ein Untermenü mit "Rock/Pop, Hard&Heavy, etc...".

    Weder unter FireFox noch Mozilla erscheint diese 2. Menüleiste.
    Vielleicht hat hier jemand einen guten Rat für mich.

    Mit freudlichen Grüßen

    2 Mal editiert, zuletzt von wisheu (12. November 2004 um 16:12)

  • Zitat

    ns = (document.layers) ? 1:0
    ie = (document.all) ? 1:0


    Wenn du nicht der Seitenbetreiber bist, kannst du da garnichts machen. Das verwendete Javascript stammt noch von ~1998 und ist hoffungslos veraltet.

  • Zitat von wisheu


    Vielleicht hat hier jemand einen guten Rat für mich.

    Dem Webmaster eine scheuern ? :twisted:

    Das Javaskript, daß diese zweite Menüleiste steuert ist mit einer Browserweiche ausgestattet. Diese fragt ein Javaskript Element ab, daß nur der IE kennt und der Opera, wenn er sich als IE ausgibt.

    Das berühmt, berüchtigte document.all. (http://mozillanews.org/?article_date=2004-07-23+18-06-59)

    Ab Mozilla 1.8 Alpha wird es vom Mozilla unterstützt um die Browserweichen auszutricksen und soll auch in Zukünftige Versionen des Firefox einfließen.

    Der aktuelle Opera unterstützt schon document.all um die Browserweichen auszutricksen.

  • *seuftz*

    Ich wünsche ich würde dafür geld bekommen, diese geschichte immer und immer wieder zu erzählen.

    Also: Html-Seiten sind ja an sich statisch. nur mit hilfe von javascript (oder plugins wie flash, aber das ist was anders und muss uns jetzt nicht kümmern) kann man dort irgendwas in bewegung bringen. z.B. so dynamische menus.

    ein javascript ist ein kleines programm, dass festlegt, was wie wo gemacht werden sollen, wenn dies oder das eintrifft.

    bsp: maus über menufläche 1 -> untermenu 1 öffnen.

    um das "wo" (in der seite) genauer beschreiben zu können, gibt es ein ein dokument-objekt-model, dass beschreibt, wie man bestimmte teile innerhalb einer seite per javascript ansprechen kann.

    Der IE verwendet dafür den befehlt document.all, der alte netscape 4 nannte den befehl document.layers. Beides sind "eigene" Erfindungen, der jeweiligen hersteller und haben nichts mit dem gültigen Webstandard zu tun, den das w3c festgelegt hat. Nach webstandard heisst der befehlt document.getElementById. Und genau diesen befehl unterstützt Mozilla, Firefox und Netscape6+, aber eben nicht die selbsterfundenen befehle von MS oder Netscape.

    Viele alte (aber leider auch neue) Javascripte wurden nur für Netscape4 und IE geschrieben und benutzen die vom Standard vorgesehene Schreibweise nicht. Und daher führt Firefox diese Scripte nicht aus.

    War das verständlich genug, hoffentlich?

  • Super...

    Ungefähr so hatte ich mir eine Antwort gewünscht und ich hatte JavaScript selbst schon in Verdacht, aber da ich kein Webdesigner bin, und mich somit auch nicht mit der Struktur von diesen Dokumenten auskenne, muss ich wohl Leute Fragen die sich dammit auskennen... Jetzt weiß ich auch wie der Hase läuft und warum er nicht so läuft wie ich will. *g


    PS: Oder hätte ich statt Hase Fuchs schreiben sollen?

  • Zitat von Claw

    und der Opera, wenn er sich als IE ausgibt.


    Opera versteht doc.all immer, egal wie sein Useragent eingestellt ist.

    Zitat von Claw

    Ab Mozilla 1.8 Alpha wird es vom Mozilla unterstützt um die Browserweichen auszutricksen


    Keine "native" Unterstützung. Browserweichen kann man damit nicht umgehen. wenn ein script ungeprüft doc.all verwendet, versteht mozilla das. kommt eine weiche aber daher und prüft auf doc.all, wird mozilla sagen: ne, kann ich nicht.

    Zitat von Claw

    und soll auch in Zukünftige Versionen des Firefox einfließen.


    Seit der PreviewVersion (0.10) bereits enthalten.

    Zitat von Claw

    Der aktuelle Opera unterstützt schon document.all um die Browserweichen auszutricksen.


    Mit Browserweichen hat das wenig zu tun. Opera unterstützt einfach das IE-Objektsystem. Das heisst, alle IE-Scripte mit doc.all laufen auch auf Opera.