Jo_S: Styleswitcher-Probleme in IE

Hallo,

auf der Seite http://www.raumvorschau.de/ waren vom Auftraggeber drei verschiedenfarbige Layouts gefordert, die per Styleswitcher in der Hauptnavi realisiert wurden. Es gibt ein Standard-CSS und zwei alternative Stile. Beim Mausklick werden a) per JavaScript die neue CSS eingelesen und b) ein Cookie mit dem aktuell gewählten CSS gesetzt.

Warum das Cookie? Sobald vom User ein neuer Stil gewählt wurde, soll er ja auch für die Folgeseiten übernommen werden. Also muss ich den gewählten Stil irgendwie "übergeben". Mittels PHP hätte ich zwar die Möglichkeit, die aktuelle CSS als Variable an der URL zu übergeben, per JaaScript bleibt mir m.E. nur die Möglichkeit, ein Cookie auf die Festplatte zu schreiben und beim Laden der nächsten Seite dort den gewünschten Stil auszulesen.

Im Firefox klappt alles - wie gewohnt - prima.
Im IE passiert nun aber folgendes: wenn ich eine der beiden alternativen Stile angeklickt habe und nun auf einen anderen Menüpunkt klicke, wird die Folgeseite erst mit dem Default-Stil ("cyan") geladen. Erst, nachdem das letzte Bildelement dieses Standardstils geladen wurde, wird die aktuell im Cookie gespeicherte (= "richtige") CSS eingelesen und die Seite baut ein zweites Mal (nun mit dem "richtigen" Stil) auf.

Zu deutsch: Seiten mit der Standard-CSS werden einmal geladen, Seiten mit einer der beiden alternativen CSS werden zweimal geladen. Das ist natürlich unschön, vor allem bei etwas langsameren Internet-Verbindungen. Offensichtlich liest IE das Cookie erst nach vollständigem Laden der Seite und Rendern des Standard-Stils aus. Ich frage mich nun, wie / ob ich IE dazu bewegen kann, die "richtige" CSS von Anfang an zu laden (also VOR dem Rendern der Seite im Standard-Stil).

Gibt's da irgend eine Lösung?

Gruss, Jo

  1. auf der Seite http://www.raumvorschau.de/ waren vom Auftraggeber drei verschiedenfarbige Layouts gefordert, die per Styleswitcher in der Hauptnavi realisiert wurden. Es gibt ein Standard-CSS und zwei alternative Stile. Beim Mausklick werden a) per JavaScript die neue CSS eingelesen und b) ein Cookie mit dem aktuell gewählten CSS gesetzt.

    ...

    Im Firefox klappt alles - wie gewohnt - prima.

    Nicht nachvollziehbar.
    Anscheinend funktioniert deine Cookie Lösung Online noch nicht.

    Ich würde dir raten, das richtige CSS gleich serverseitig einzubinden.
    Da der CSS-switcher eher selten gebraucht wird, sparst du ein paar Requests.

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
    1. Hallo Beat,

      Nicht nachvollziehbar.
      Anscheinend funktioniert deine Cookie Lösung Online noch nicht.

      was funktioniert bei dir nicht? (Möglicherweise Cookies deaktiviert?)

      1. Nicht nachvollziehbar.
        Anscheinend funktioniert deine Cookie Lösung Online noch nicht.

        was funktioniert bei dir nicht? (Möglicherweise Cookies deaktiviert?)

        Wenn ich mit FF nach Änderung des CSS (über den FF-Menupunkt alternatives CSS) eine andere deiner Seiten aufrufe, erhalte ich das alte CSS.

        Diagnose überlasse ich dir (Cookies aktiviert).

        mfg Beat

        --
        ><o(((°>           ><o(((°>
           <°)))o><                     ><o(((°>o
        Der Valigator leibt diese Fische
        1. Diagnose überlasse ich dir (Cookies aktiviert).

          So, Diagnose überlasse ich dem Mülleimer. ;-)

          Ich beuge mich dem nachvollzieharen Argument der reduzierten Requests und habe jetzt per PHP eine serverseitige CSS-Einbindung reingebastelt.

          Alle Probleme erledigt, auch im IE (logisch, nach der Änderung). Ein Grund mehr, öfter auf PHP zu setzen, wenn JavaScript überflüssig ist.

          Gruss, Jo