Kompatibilitätsprobleme der Browser bzgl. document.all und document.layers (sowie den Stil-Atrributen darunter) löst Du mit der JavaScript Funktion "eval".
Beispiel:
var layerRef="", styleSwitch="";
function init(){
if (navigator.appName == "Netscape") {
var layerRef="document.layers";
var styleSwitch="";
}else{
var layerRef="document.all";
var styleSwitch=".style";
}
}
Arggh!
Du verwendest nur 4'er Browser?
Um danach schön eval (ist evil) einzusetzten?
function showLayer(layerName){
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="visible"');
}function hideLayer(layerName){
eval(layerRef+'["'+layerName+'"]'+styleSwitch+'.visibility="hidden"');
}
function getById(id, win)
{
var doc = window.document;
if(win) doc = win.document;
if(typeof id == 'undefined') return null;
var obj = null;
if(document.getElementById) obj = doc.getElementById(id);
else if(typeof document.layers != 'undefined') obj = doc.layers[id];
else if(document.all) obj = doc.all[id];
return obj;
}
////////////////////////////////////////////////////////////
// setVis
function setVis(obj, mode)
{
if(!obj) return null;
if(typeof obj == "string") obj = getById(obj);
if(typeof document.layers != 'undefined')
{
obj['visibility'] = mode ? 'show' : 'hidden';
return obj['visibility'];
}
obj.style['visibility'] = mode ? 'visible' : 'hidden';
return obj.style['visibility']
}
Struppi.