Mirko: id im JavaScript dynamisch auswählen

Beitrag lesen

Hi peterS

indizes benoetigst Du nicht unbedingt, denn Du benennst
   doch Deine divsbzw Deine layer - oder?

Von Layern war ja gar nicht die Rede, oder? Auch andere Elemente haben die Eigenschaft innerHTML.

function manageDiv(divName,text)
{if (document.getElementById)
  {document.getElementById(divName).innerHTML = text;}
  else
  {if (document.all)
   {document.all.tags("div")[divName].innerHTML = text;}
   if (document.layers)
   {document.layers[divName].document.open();
    document.layers[divName].document.write(text);
    document.layers[divName].document.close();
} } }

Hmm.. ist aber eher unperformant. Da wird ja bei jedem Aufruf neu gecheckt, welches Objekt der Browser nun kennt. Meine Wenigkeit macht das immer so:

if (document.layers) setText = function setText(name, txt) // writes text into a stylesheet
{ document.layers[name].document.open();
  document.layers[name].document.write(txt);
  document.layers[name].document.close();}
else if (document.all) setText = function setText(name, txt)
{ document.all.tags("div")[name].innerHTML = txt;}
else if (document.getElementById) setText = function setText(name, txt)
{ document.getElementById(name).innerHTML = txt;}
else setText = function setText() {};

Da wird die Funktion einmal am Anfang zugewiesen und fertig ist die Laube :).

ausserdem koenntest Du noch mit der methode "eval()" arbeiten
   dann saehe das ganze fuer (document.layers/all) so aus:

Also, wenn man schon weiß, dass es Layer sind, warum dann so unperformant mit eval arbeiten?

Mirko