kommt diese bescheuerte ie fehlermeldung (document.all[...] ist Null oder ist kein Objekt).
document.all ist IE 4.0 also komplett veraltet. Informationen über das aktuelle DOM findest du hier http://www.netzwelt.com/selfhtml/dhtml/index.htm
Die function change_layer(param1, param2):
function change_layer(layer, value)
{
IE=0;
NS4=0;
NS6=0;
if (navigator.appName.indexOf('Netscape')!=-1 && parseInt(navigator.appVersion)<5) {NS4=1;}
if (navigator.appName.indexOf('Netscape')!=-1 && parseInt(navigator.appVersion)>4.9) {NS6=1;}
if (navigator.appName.indexOf('Microsoft')!=-1 && parseInt(navigator.appVersion)>3) {IE=1;}
Diese Prüfung ist sinnlos, da der Name eines Browsers keinerlei Rückschlüsse über dessen Fähigkeiten zuläßt. Warum überprüfst du nicht einfach auf das was du benutzen willst?
if (IE==true)
{
document.all['IE_'+layer].innerHTML=value;
}
if (NS4)
{
eval('var echoecho = document.layers.NS_'+layer+'.document;');
echoecho.open();
echoecho.write(value);
echoecho.close();
}
if (NS6)
{
document.getElementById('NS_'+layer).innerHTML =value;
}
}
Also:
if(document.getElementById)
document.getElementById(layer).innerHTML = value;
else if(document.layers)
{
var obj = document.layers[layer].document;
obj.open();
obj.write(value);
obj.close();
}
else if(document.all) documnet.all[layer].innerHTML = value;
eine Unterscheidung zwischen IE/NS ist nicht erforderlich, normalerweise.
eval ist in diesem (wie in 99.999% aller Fälle wo es eingesetzt wird) nicht nötig, Fehleranfällig, langsam und erschwert das debuggen.
Warum aber dien Fehler auftritt läßt sich so nicht sagen.
Du solltest überprüfen, was du nutzt. im obigen Beispiel:
var obj = null;
if(document.all) obj = document.all[layer];
....[usw.]
if(!obj) return alert('Fehler!\n\nLayer:' + layer + ' nicht gefunden');
Struppi.