Frage zum "all"-Objekt beim IE4/5
Frank Strohtmann
- javascript
0 Cheatah0 Thomas Hieck
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
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
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