Moin!
Mit dieser Funktion will ich alle Divs, die ich auf der Page definiert habe, wieder unsichtbar machen. Für den Netscape funktioniert das auch gut, da er die alle Divs nach der Reihe abarbeitet und sie auf "hide" setzt.
Richtig, Netscape 4 (!!!) setzt die Visibility-Attribute "hide" und "show" ein, alle anderen Browser dagegen "visible" und "hidden".
Der IE scheint mit dem Befehl "getElementsByTagName" Probleme zu haben, es sei kein Object und ein Fehler sei auf der Seite aufgetreten.
Wenn du im Skript auf "document.all" testest, dann aber mit dem DOM arbeitest, dann ist das, gelinde gesagt, Blödsinn. Entweder Zugriff via document.all, oder Test auf DOM-Kapazität (was alle Browser außer Netscape 4 und IE 4 können). Ich tendiere zu letzerem. :)
Nun möchte ich aber der Reihenfolge nach alle DIVS durchlaufen, das Attribute ändern, ohne jedes einzelne DIV anzusprechen, sondern das ganze schick über eine "for(.....)"-Schleife durchführen.
Welche Möglichkeit habe ich da???
Dir kann natürlich passieren, daß der IE noch ein wenig doof ist und getElementsByTagName nicht kennt. Wozu ist eigentlich getElementsByName da? Ist zumindest verbreiteter und würde vielleicht besser funktionieren. Außerdem kannst du dann noch andere Layer benutzen, die durch deine Funktion nicht versteckt werden.
Die ganz simple Lösung: Jeder Layer kriegt eine ID, und die IDs kommen in ein Array, und das Array wird durchlaufen und jede gespeicherte ID versteckt.
Nicht unbedingt kreativ, die Lösung, aber effektiv. :)
- Sven Rautenberg