Struppi: Grafik zeigen während des Ladevorgangs

Beitrag lesen

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.