WAY_KOW: document.getElementById is not a function

Netscape kennt das get ElementById nicht.

Ich will damit 2 Stylesheets per Javascript austauschen.

Es geht darum, daß ich eine per CSS eingebunde Tabelle unsichtbar mache für ein Pulldownmenü.
Daher deaktiviert der eine CSS Befehl das Element der andere aktiviert es.

ALTERNATIVE: Man könnte auch das Element einfach in einen nichtsichtbaren Bereich verschwinden lassen, wenn man die CSS Left unter position verändern könnte per JS.

Kennt einer eine Lösung?

  1. Netscape kennt das get ElementById nicht.

    boh.. kann hier mal wer die Version nennen....!
    Netscape 4 ist für sowas in der Tat zu doof, da muss man sowas *etwas* umständlicher lösen. Jeder andere Aktuelle browser sollte aber so das CSS-file ändern können:

    document.getElementById("CSS").href = "styles_2.css";

    kleiner wink an Stefan: du schreibst, dass das mit Netscape 6.1 nicht geht - also Mozilla 0.9.5 kanns :)

    1. Netscape 4 ist für sowas in der Tat zu doof, da muss man sowas *etwas* umständlicher lösen. Jeder andere Aktuelle browser sollte aber so das CSS-file ändern können:

      document.getElementById("CSS").href = "styles_2.css";

      Vielleicht dann doch gleich W3C-DOM-konform:

      <link id="xyz" href="file_a.css" type="text/css">

      ...

      if(docment.getElementById)
      {
        docment.getElementById("xyz").setAttribute("href","file_b.css");
      }

      MfG, Thomas

      1. Netscape 4 ist für sowas in der Tat zu doof, da muss man sowas *etwas* umständlicher lösen. Jeder andere Aktuelle browser sollte aber so das CSS-file ändern können:

        document.getElementById("CSS").href = "styles_2.css";

        Vielleicht dann doch gleich W3C-DOM-konform:

        <link id="xyz" href="file_a.css" type="text/css">

        ...

        if(docment.getElementById)
        {
          docment.getElementById("xyz").setAttribute("href","file_b.css");
        }

        laut der DOM-Doku in SelfHTML ist das erstere auch legal.. error..???

      2. Das ist leider keine Lösung:

        1. Mal müßte ich dann mindest 50 verschiedene CSS Files haben weil sich ja jeweils nur einige wenige Styles ändern.
        2. verwendet es wieder eine non Netscape4.x Befehl:(

        Für IE geht es ja schon:(

          1. Mal müßte ich dann mindest 50 verschiedene CSS Files haben weil sich ja jeweils nur einige wenige Styles ändern.

          was hat das jetzt mit diesem Konstrukt zu tun..?
          Dein ursprüngliches Problem kannst du sonst auch damit lösen, dass du die Ebenen der Menüs mit visibility:hidden versteckst und sie dann bei Bedarf "hervorkramst"... [ja, es geht auch mit display:none, aber das will Opera nicht]

          1. verwendet es wieder eine non Netscape4.x Befehl:(das Netscape 4 zu Problemen führt, wirst du mit eienr Wahrscheinlichkeit von ca. 90% schaffen, besonders bei Scripting verhält er sich VÖLLIG anders als die anderen aktuellen Browser...