Christian Seiler: .innerHTML

Beitrag lesen

Hallo Aya,

wenn ich mit dem Befehl innerHTML einem <DIV> einen neuen Inhalt gebe funktioniert das im IE alles wunderbar...

Aber wie bekomme ich es hin, das das mit dem Mozilla auch funktioniert???

Dein Problem heißt nicht innerHTML, das kann der Mozilla nämlich auch, Dein Problem ist der Zugriff auf das <div>. Ich nehme an, Du verwendest eine der folgenden Möglichkeiten:

document.divid.innerHTML = 'blabla';
document.all['divid'].innerHTML = 'blabla';

Das kann allerdings nur der IE. Aber der IE kann ab der Version 5 auch das Document Object Model, das der vom W3C definierte Standard ist.

Daher:

document.getElementById('divid').innerHTML = 'blabla';

Alternativ, damit es auch im IE 4 und Netscape 4 klappt:

if (document.getElementById) { // DOM: IE5+, Mozilla, Netscape 6+, Konqueror, Opera 7+
  document.getElementById('divid').innerHTML = 'blabla';
} else if (document.all) { // IE 4
  document.all['divid'].innerHTML = 'blabla';
} else if (document.layers) { // Netscape 4
  with (document.layers['divid'].document) {
    open(); write ('blabla'); close ();
  }
}

Damit es im Netscape 4 klappt, musst Du allerdings das <div> absolut positionieren, sonst macht er die Änderung nicht. In allen anderen Browsern klappt es, egal wie das <div> formatiert ist.

Siehe auch:
http://selfhtml.teamone.de/dhtml/modelle/index.htm ff.

Viele Grüße,
Christian

--
Hast Du einen Beitrag? Nur her damit!
http://aktuell.de.selfhtml.org/tippstricks/beitrag.htm
SELF-Code: (http://emmanuel.dammerer.at/selfcode.html)
sh:) fo:) ch:] rl:( br:> n4:& ie:% mo:) va:) de:] zu:) fl:( js:| ss:) ls:[