innerHTML in DOM???
xproggy
- dhtml
Wenn man von JavaScript aus formatierten Text in ein <div>-Element schreiben (bzw. ändern) will, notiert man für den Internet Explorer:
document.all["IdDesDivElements"].innerHTML = "<b><i>formatierter</i> Text</b>";
und für Netscape (ältere Versionen):
document["IdDesDivElements"].innerHTML = "<b><i>formatierter</i> Text</b>";
aber wie muss man es DOM-gerecht notieren? Denn der Netscape 6.0 Browser unterstütz zum Beispiel nur noch das DOM-Prinzip, nicht mehr die alte Netscape-Syntax.
Hallo,
Wenn man von JavaScript aus formatierten Text in ein <div>-Element schreiben (bzw. ändern) will, notiert man für den Internet Explorer:
document.all["IdDesDivElements"].innerHTML = "<b><i>formatierter</i> Text</b>";
Nein, das macht man seit 1999 nicht mehr bzw. nur noch als Fallback fuer den IE4. Besser ist:
document.getElementById("IdDesDivElements").innerHTML = "<b><i>formatierter</i> Text</b>";
aber wie muss man es DOM-gerecht notieren? Denn der Netscape 6.0 Browser unterstütz zum Beispiel nur noch das DOM-Prinzip, nicht mehr die alte Netscape-Syntax.
Wie beschrieben klappt das auch mit Netscape 6+ und Mozilla. innerHTML ist zwar (noch?) keine DOM-Syntax, aber dennoch praktischer als dasselbe mit DOM-Methoden zu realisieren. Insofern ist es IMHO zu begrueßen, dass das Mozilla-Team diese Technik aufgegriffen hat.
MfG, Thomas
Gugucks,
document.all["IdDesDivElements"].innerHTML = "<b><i>formatierter</i> Text</b>";
So musst du das für den IE 4 machen.
Sowohl der IE als auch Netscape 6 / Mozi verstehen:
document.getElementById("IdDesDivElements").innerHTML;
Mit anderen Worten, innerHTML ist Standard.
Gruß, Uschi
Hallo,
Sowohl der IE als auch Netscape 6 / Mozi verstehen:
document.getElementById("IdDesDivElements").innerHTML;
Mit anderen Worten, innerHTML ist Standard.
Dann ist marquee ab heute auch Standard ;-).
MfG, Thomas
Hallo,
aber wie muss man es DOM-gerecht notieren? Denn der Netscape 6.0 Browser unterstütz zum Beispiel nur noch das DOM-Prinzip, nicht mehr die alte Netscape-Syntax.
Also der alte NS hat kein innerHTML unterstützt.
function fnSetInnerHTML (elm, html)
{
if (document.layers) { //<-- NS 4
elm.document.write(html);
elm.document.close();
}
else if (typeof(elm.innerHTML) != 'undefined') { //<-- neuere Browser
elm.innerHTML = html;
}
}
<
Die Frage, die du dir stellst, sollte eher "Wie komme ich an das Element (elm, DIV/LAYER) ran" lauten. Das Problem ist , dass nicht alle Browser das DOM vom W3C unterstützen, sprich ihre eigene Implementierung für den Zugriff auf ein Element besitzen.
Schau mal auf <developer.netscape.com/>, dort werden im unteren Abschnitt Cross-Browser-Scripts vorgestellt, welche eine Funktion beinhalten (xbGetElementById und xbGetElementsByName), die einen "allgemeingültigen" Zugriff auf ein Element ermöglichen, sprich für die weitverbreitesten Browser (IE, NS, Gecko (Moz, NS6+) und Opera). Allgemeingültigkeit bedeutet hier, dass diese Funktionen die browserspezifischen Gegebenheiten beachten, sprich ob ein Browser schon das DOM unterstützt oder ob auf proprietäre Eigenschaften zurückgegriffen werden muss.
hth
torsten