Siechfred: nodes (firefox und iexplorer unterschiede)

Beitrag lesen

Tag MudGuard.

Folgende kleine Testseite unten, funktioniert einwandfrei im firefox, bringt aber im Internet Explorer in Zeile 17 einen Javascript-Error.
Weil Du ein div in ein p einhängen willst?
p darf kein div enthalten.

Mag richtig sein, ist aber hier nicht das Problem, Javascript/DOM interessieren sich herzlich wenig für valides HTML. Das Problem wird von style verursacht, folgendes funktioniert problemlos:

function test() {  
  var newDIV = document.createElement("div");  
  newDIV.id = 'Layer1';  
  newDIV.style.backgroundColor = 'red';  
  newDIV.style.width = '93px';  
  newDIV.style.height = '94px';  
  document.getElementById("divcontainer").appendChild(newDIV);  
}

Ursache ist der Versuch, style einen String zuzuweisen ("Member not found"). Der IE kennt nämlich die Eigenschaft HTMLObjekt.style nicht und wirft deshalb aus seiner Sicht konsequent die genannte Fehlermeldung (siehe MSDN: style-Property, unter Remarks). Also braucht man es im IE gar nicht erst zu versuchen, dem style-Attribut einen String zuzuweisen, sondern muss die einzelnen Eigenschaften des style-Objektes ändern (wie in meinem Beispiel) oder alternativ via HTMLObjekt.className eine Klasse mit den gewünschten Eigenschaften zuweisen.

Siechfred