Nina: CSS Switch mit JavaScript in Netscape

Hallo alle zusammen!

Ich habe folgendes Problem:
Auf meiner Website habe ich ein vierteljährlich wechselndes Layout eingebaut. Dazu habe ich vier verschiedene externe StyleSheets erstellt, die in jeder HTML-Seite mittels eines externen Javascripts aktiviert bzw. deaktiviert werden.
Im Head-Teil der Html-Seiten habe ich folgenden Code:
<link rel="stylesheet" disabled="true" href="styles/winter.css" type="text/css">
<link rel="stylesheet"  disabled="true" href="styles/fruehling.css" type="text/css">
<link rel="stylesheet"  disabled="true" href="styles/sommer.css" type="text/css">
<link rel="stylesheet"  disabled="true" href="styles/herbst.css" type="text/css">

<SCRIPT LANGUAGE = "JavaScript" src="java/style.js"></SCRIPT>

Im externen Java Script style.js habe ich dann mittels dem stylesheet Objekt auf die Eigenschaft disabled zugegriffen.
<!--
var datum = new Date();
var monat = datum.getMonth();

if(monat <= 4 && monat >= 2) {document.styleSheets[1].disabled = false;}

else if(monat <= 7 && monat >= 5) {document.styleSheets[2].disabled = false;}

else if(monat <= 10 && monat >= 8) {document.styleSheets[3].disabled = false;}

else {document.styleSheets[0].disabled = false;}
//-->

Das ganze funktioniert wunderbar im IE, nur in Netscape wird mir immer nur der zuletzt eingebundene StyleSheet angezeigt.
Wie kann ich das ändern?
Vielen Dank für Eure Hilfe!
Lg, Nina

  1. hi,

    Auf meiner Website habe ich ein vierteljährlich wechselndes Layout eingebaut. Dazu habe ich vier verschiedene externe StyleSheets erstellt, die in jeder HTML-Seite mittels eines externen Javascripts aktiviert bzw. deaktiviert werden.

    hm ...

    <link rel="stylesheet" disabled="true" href="styles/winter.css" type="text/css">
    Im externen Java Script style.js habe ich dann mittels dem stylesheet Objekt auf die Eigenschaft disabled zugegriffen.

    ich denke nicht, dass <link> ein attribut namens disabled hat.

    Das ganze funktioniert wunderbar im IE, nur in Netscape wird mir immer nur der zuletzt eingebundene StyleSheet angezeigt.

    warum schreibst du nicht einfach per javascript _ein_ <link>-element mit dem "richtigen" stylesheet dynamisch ins dokument?

    gruss,
    wahsaga

  2. Hallo,

    Ich habe folgendes Problem:
    Auf meiner Website habe ich ein vierteljährlich wechselndes Layout eingebaut. Dazu habe ich vier verschiedene externe StyleSheets erstellt, die in jeder HTML-Seite mittels eines externen Javascripts aktiviert bzw. deaktiviert werden.

    Ich würde das schon fast mit SSI statt mit JavaScript lösen: http://www.drweb.de/ssi/ssi_8.shtml

    Grüße
    Thomas

  3. Im externen Java Script style.js habe ich dann mittels dem stylesheet Objekt auf die Eigenschaft disabled zugegriffen.
    <!--
    var datum = new Date();
    var monat = datum.getMonth();

    if(monat <= 4 && monat >= 2) {document.styleSheets[1].disabled = false;}

    else if(monat <= 7 && monat >= 5) {document.styleSheets[2].disabled = false;}

    else if(monat <= 10 && monat >= 8) {document.styleSheets[3].disabled = false;}

    else {document.styleSheets[0].disabled = false;}
    //-->

    Das ganze funktioniert wunderbar im IE, nur in Netscape wird mir immer nur der zuletzt eingebundene StyleSheet angezeigt.

    Seltsam weder bei M$ noch auf der MZ Seiter wird etwas von der disabled eigenschaft erwähnt:

    http://www.mozilla.org/docs/dom/domref/dom_style_ref.html
    http://msdn.microsoft.com/workshop/author/dhtml/reference/collections/stylesheets.asp

    Ich  vermute mal es geht so nicht.

    Du kannst ja mal versuchen das ganze auf null zu setzten.

    Struppi.

  4. Hallo!

    Vielen Dank für die Antworten und Eure Tipps.
    Bin jetzt draufgekommen, wie man das ganze doch in Javascript lösen kann. Habe vergessen, im link-tag im html-code für jeden stylesheet einen "title" zu setzen. Dann funktioniert das ganze nämlich auch in Netscape, Opera usw.

    Lg, Nina

    1. Dann funktioniert das ganze nämlich auch in Netscape, Opera usw.

      Hoppla, Fehler meinerseits. Funktioniert dann in Netscape und Mozilla, nicht Opera. Das untertstützt ja kein stylesheet-Objekt.

      Lg, Nina