Dani: document.all.....??

Hallo!

Kann mir jemand sagen, warum dieses Script mit Netscape-Browsern nicht läuft??
Es soll ganz einfach der Hintergrund einer Tabellen-Zelle geändert werden.
Fehler bei Netscape 6: "document.all has no properties"

Oder allgemein gefragt: Wie kann ich mit JavaScript am besten auf Tags zugreifen, sodass es auch bei Netscape funktioniert??

Hier der Auszug:
----------------

<script language="JavaScript">
var coloron = "#adff2f";

function ChangeTabColorOn(zellnr)
{
 document.all[zellnr].style.backgroundColor = coloron;
}
</script>

<table border=o cellpadding=0 cellspacing=0 widht=130>
<tr>
<td align="center" id="topic1" onmouseover="ChangeTabColorOn('topic1')">
menu-punkt</td>
</tr>
</table>

  1. Sup!

    Wenn Du SelfHTML gelesen hättest, würdest Du wissen, daß es bei Netscape kein document.all gibt.

    document.all ist IE4-Syntax und nicht standardkonform - darum kennt Netscape 6 es auch nicht.

    auf Elemente greift man bei Netscape mit der ID zu:

    document.getElementById("id").bla()

    Ich habe leider gerade keine Lust, das genau zu erklären, sorry.

    Gruesse,

    Bio

    1. Morgen !

      auf Elemente greift man bei Netscape mit der ID zu:
      document.getElementById("id").bla()
      Ich habe leider gerade keine Lust, das genau zu erklären, sorry.

      Aber ich:

      Die Unterobjekte von document.getElementById() sind praktisch die gleichen wie bei document.all, nur daß es jetzt halt getElementById heißt und nicht mehr all.
      Dokumentiert ist das getElementById-Dings beim W3c (http://www.w3c.org) und M$ (http://msdn.microsoft.com).
      Mit Netscape 4 schaut's da übrigens sehr düster aus, der kann nämlich keins von beiden.

      :-)

      Ciao,

      Harry

      1. Mit Netscape 4 schaut's da übrigens sehr düster aus, der kann nämlich keins von beiden.

        Stimmt, dafür hat Netscape 4.x document.layer. Wenn Du also für alle Browser coden willst mußt Du

        für IE 4.x document.all
        für NN 4.x document.layer
        für IE 5.x document.all oder document.getElementById
        für NN 6.x document.getElementById

        nehmen.

        Rauskriegen, welcher Browser was kann, machst Du am besten so:

        if (document.all){
        document.all.....
        }
        usw.

        Gruß
        Henry

        1. Tag

          Mit Netscape 4 schaut's da übrigens sehr düster aus, der kann nämlich keins von beiden.

          Stimmt, dafür hat Netscape 4.x document.layer. Wenn Du also für alle Browser coden willst mußt Du ...

          was ich sagen wollte ist:
          Mit .all und .getElementById kann ich praktisch jede Kleinigkeit ändern, und das noch dazu von praktisch jedem Element.
          Mit Netscape 4 bin ich dagegen doch sehr eingeschränkt, da ich nur grundlegende Eigenschaften (auch nicht immer, z.B. Breite von Bildern),  nicht aber Detailangaben zur Laufzeit ändern kann.

          Und außerdem heißt das Ding document.layers, mit "s" hinten. Das hat heut schon mal einer verbockt ;-)

          Ciao,

          Harry

          1. Und außerdem heißt das Ding document.layers, mit "s" hinten. Das hat heut schon mal einer verbockt ;-)

            Ich wollt ja nur schauen, obs einer merkt..... :-)
            Stimmt aber, war´n Fiptehler.
            Gruß
            Henry