non js-master: ist innerHTML gut oder nicht?

Hallo,

Wenn ich dynamisch HTMLCode ändern möchte, so mache ich das manchmal so,  dass ich zB ein leeres div anlegen (<div id="newContent"></div>) und dann so den per JS neuen Code reinschreibe:

document.getElementById("newContent").innerHTML = "<h1>Headline</h1>"

Ist das okay oder sollte ich besser

document.getElementById("newContent").firstChild.nodeValue  = "<h1>Headline</h1>"

verwenden?

Ach ja, wenn ich schon beim Fragen bin, kann mir jemand auf meine andere Frage antworten? Sie steht weiter unten im Forum und geht darum, dass focus() beim Firefox 1.0.4 unter MacOSX 10.4 nicht geht.

  1. Hi,

    document.getElementById("newContent").innerHTML = "<h1>Headline</h1>"
    Ist das okay

    da DOM kein innerHTML kennt, kann es selbst dann nicht vorausgesetzt werden, wenn Du grundsätzlich die DOM-Fähigkeit verifiziert hast - was natürlich geschehen ist, richtig?

    oder sollte ich besser
    document.getElementById("newContent").firstChild.nodeValue  = "<h1>Headline</h1>"
    verwenden?

    Das kannst Du tun. Allerdings liefert das ein anderes Ergebnis. Zudem solltest Du dann sicher stellen, dass firstChild überhaupt existiert. Wenn Du Elemente wie z.B. <h1> erzeugen willst, musst Du die zum Erzeugen von Elementen vorgesehenen Methoden verwenden.

    Ach ja, wenn ich schon beim Fragen bin, kann mir jemand auf meine andere Frage antworten?

    Das wird allenfalls derjenige tun, der die Frage liest - was am meisten vom angegebenen Themenbereich und Subject abhängt. Drängeln hilft nicht. Weder bei der Antwortgeschwindigkeit, noch bei der Sympathieentwicklung.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  2. Hi,

    Ist das okay oder sollte ich besser

    Da letzteres falsch ist, ist ersteres vorzuziehen. ;-)

    innerHTML wird von allen DOM-Browsern unterstützt. Um sicherzugehen, kannst du natürlich, wie immer wenn man sich nicht aufs "wird schon klappen" verlassen möchte, einfach vorher abfragen, ob innerHTML unterstützt wird oder nicht:

    is_innerHTML=(document.getElementsByTagName)?(typeof(document.getElementsByTagName("title")[0].innerHTML)=="string"):false;

    (natürlich nach dem TITLE-(Pflicht-)Tag aufrufen)

    Und dann:

    if(is_innerHTML) { ... }

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!