Markus**: DOM & Internet Explorer

Beitrag lesen

Das folgende Script manipuliert einen Teil der Tabelle in einer Webseite:

  
var sel = document.createElement("td");  
sel.appendChild(document.getElementsByName("time")[0].cloneNode(true));  
//node kopieren und ins erzeugte TD-Element packen  
  
var tr = document.createElement("tr");  
tr.setAttribute("name", "via"+f);  
//TR-Element erzeugen  
  
var inp = document.createElement("input");  
inp.setAttribute("type", "text");  
inp.setAttribute("name", "inputfield");  
inp.setAttribute("style", "width:150px;");  
inp.setAttribute("id", "testid");  
//INPUT-Elment erzeugen  
  
var td1 = document.createElement("td");  
var Text = document.createTextNode("Hallo");  
td1.appendChild(Text.cloneNode(true));  
td1.appendChild(inp);  
//TD-Element erzeugen und INPUT-Element reinstekcen  
  
tr.appendChild(td1.cloneNode(false));  
tr.appendChild(td1.cloneNode(false));  
//zwei leere TD-Nodes ins TR-Element einfügen  
tr.appendChild(sel);  
//das kopierte SELECT-Element samt TD einfügen  
tr.appendChild(td1);  
//TD und Textnode einfügen  
  
document.getElementById("tb").insertBefore(tr, document.getElementById("total"));  
//alles samt als neues Table Row Element in die Tabelle integrieren  

Es klappt auch prima, allerdings wenn ich dann mittels:

document.getElementsByName("inputfield")[0].style..... versuche am grade erzeugten Objekt irgendwelche style Eigenschaften zu ändern, terminiert der MSIE mit der Begründung document.getElementsByName("inputfield")[0].style ist NULL oder kein Objekt. Komisch? ER hat es doch grade selbst erzeugt und sogar dargestellt. Offensichtlich werden vom MSIE einige Attribute ohnehin nicht beachtet. "inp.setAttribute("style", "width:150px;")" bleibt ohne Wirkung und Attribute wie "id" oder "value" lassen sich offensichtlich mit dieser Methode setzen.

Alle anderen Browser die ich bis jetzt probiert hab, haben das script auch ohne die eigenarten des MSIE ausgeführt. Was ist das für ein BUG? Kennt jemand das Phänomen?

Gruß, Markus**