Frank Strohtmann: Frage zum "all"-Objekt beim IE4/5

Tach zusammen!

Ich bringe gerade meine HP auf Vordermann und habe Probleme mit dem "all"-Objekt,
daß ich für die Programmierung des IE4/5 unbedingt benötige.

Bei Netscape4 ist es ja problemlos möglich auf Layers entweder über das Layer-Array oder direkt über den Layernamen zuzugreifen. Beim IE und <DIV>isions habe ich jedoch massive Probleme. Im Prinzip funktioniert zwar alles - mit dem Code an sich bin jedoch sehr unzufrieden, da es mir bis jetzt nicht gelungen ist an das "all"-Objekt irgendwie einen <DIV>-Index anzuhängen. Ich muß für dynamisches Anzeigen eines <DIV>s jedesmal
eine eigene (zwar kurze, aber dennoch) Funktion schreiben, oder?!

Konkret meine ich folgendes:
...
function Button2ein() {document.all.button2.style.visibility = "visible";}
function Button2aus() {document.all.button2.style.visibility = "hidden";}
function Button4ein() {document.all.button4.style.visibility = "visible";}
function Button4aus() {document.all.button4.style.visibility = "hidden";}
usw.
...

Könnte man nicht irgendwie wie bei Netscape mit Layern eine Indexnummer
übergeben, die dann entsprechend eine <DIV> (un-)sichtbar macht?

Also ungefähr so:

function DynButton(NUMMER/NAME)
{
document.layers[NUMMER/NAME].visibility = "hide" bzw. "visible";}
}

Mir ist zwar die Funktionsweise des "all"-Objektes schon klar, aber gibt es nicht auch
hier irgendwelche Arrays, in denen die einzelnen <DIV> gespeichert sind, um direkt
daraufzuzugreifen?

Wenn ich nämlich plötzlich 20 <DIV>s habe, die dynamisch (un-)sichtbar werden
sollen, artet das ja bei meiner bisherigen Vorgehensweise in "Uneffektivität
beim Programmieren" aus :(

Vielen Dank!
Frank

  1. Hi,

    function Button2ein() {document.all.button2.style.visibility = "visible";}
    function Button2aus() {document.all.button2.style.visibility = "hidden";}
    function Button4ein() {document.all.button4.style.visibility = "visible";}
    function Button4aus() {document.all.button4.style.visibility = "hidden";}

    vielleicht hilft Dir ja folgendes:

    function Button(nr, visib) {
      if (visib == 0) { visib = 'hidden'; }
      else { visib = 'visible'; }
      eval('document.all.button' + nr + '.style.visibility = "' + visib + '";');
    }

    Das war jetzt Quickhack, sollte aber in etwa funktionieren. Du übergibst dann z.B. Button(2,0), um Button2 auf hidden zu setzen.

    Cheatah

  2. Also ungefähr so:

    function DynButton(NUMMER/NAME)
    {
    document.layers[NUMMER/NAME].visibility = "hide" bzw. "visible";}
    }

    Genau so geht es in Netscape. Beim Explorer ist lediglich eine kleine Abwandlung noetig:

    function DynButton(NAME) {
      document.all[NAME].style.visibility = "hidden";
    }

    Viele Gruesse, Thomas Hieck