PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DOM: Internet Explorer weigert sich


Pinki-)
19.02.2007, 18:42:58
Hallo Leute,

ich bin beim programmieren mit js und alles ist in Ordnung, in FireFox und Opera akzeptieren den Code, aber der IE weigert sich, auch als ich es für den ie es mit innerHTML schreiben wollte weigert er sich.
(home bezieht sich auf eine id in 'tbody' in einer Tabelle in einem andern Fenster; variablen: name = array, id = string)
hier der Quelltext (bisschen viel):

// in 'home' wird der Ausgangspfad gespeichert
var home = parent.document.getElementById('Teilnehmerliste');

try
{
// das 'tr'-Element wird erstellet
var tr = document.createElement("tr");
// die Klasse wird auf gerade oder ungerade eingestellt
if (home.getElementsByTagName('tr').length%2 == 0) tr.setAttribute("class", "even"); else tr.setAttribute("class", "uneven");
// das erste 'td'-Element wird erstellt und das style-Attribut
var td = document.createElement("td");
td.setAttribute("style", "text-align: center; margin: 2px;");
// die Checkbox im ersten 'td'
var input = document.createElement("input");
input.setAttribute("type", "Checkbox");
input.setAttribute("name", "action[]");
input.setAttribute("value", id);
input.setAttribute("onClick", "checked_checkbox(this);");
// einfügen der Checkbox ins 'td'-Element
td.appendChild(input);

// Neues 'input'-Feld für die Id
var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "id[]");
input.setAttribute("value", id);
// einfügen des 'input'-Feldes ins 'td'-Element
td.appendChild(input);
// einfügen des 'td'-Elementes ins 'tr'-Element
tr.appendChild(td);

// die Anderen 'td'-Element werden erstellt und deren Inhalte
for (i=0; i<name.length; i++)
{
var td = document.createElement("td");
// das Text Feld wirderstellt
var input = document.createElement("input");
input.setAttribute("onMouseOver", "textCursor(true, event);");
input.setAttribute("onMouseMove", "textCursor(true, event);");
input.setAttribute("onMouseOut", "textCursor(false);");
input.setAttribute("class", "Text");
input.setAttribute("type", "Text");
input.setAttribute("name", name[i]+"-"+id);
input.setAttribute("value", value[i]);
input.setAttribute("maxlength", "255");
// Einfügen des 'input'-Elements in das 'td'-Elements
td.appendChild(input);
// Einfügen des 'td'-Elements in das 'tr'-Elements
tr.appendChild(td);
}
// Einfügen des 'tr'-Elements in die Tabelle
home.appendChild(tr);
}
catch (e)
{
if (home.getElementsByTagName('tr').length%2 == 0)
a = "even";
else
a = "uneven";
txt = "\n\t\t<tr class=\"" + a + "\">";
txt += "\n\t\t\t" + '<td style="text-align: center; margin: 2px;"><input type="Checkbox" name="action[]" value="' + id + '" onClick="checked_checkbox(this);"><input type="hidden" name="id[]" value="' + id + '"></td>';
for (i=0; i<name.length; i++)
txt += "\n\t\t\t" + '<td><input onMouseOver="textCursor(true, event);" onMouseMove="textCursor(true, event);" onMouseOut="textCursor(false);" class="Text" type="Text" name="' + name[i] + '-' + id + '" value="' + value[i] + '" maxlength="255"></td>';
txt += "\n\t\t</tr>";
home.innerHTML += txt;
}


kann mir jemand sagen was falsch ist?

Danke

Andes
20.02.2007, 12:52:52
Mit der Funktion kann ich allein nicht allzu viel anfangen. Der IE unterstützt das tbody-Element nicht zu 100%.
Was funktioniert denn nicht genau?

Pinki-)
22.02.2007, 17:52:33
Der Explorer zeigt immer einen Laufzeitfehler an.

Aber ich habe von einem Freund den Tipp bekommen, dass der Explorer sich schwer tut, wenn es darum geht neue Knoten in anderen Fenstern zu erstellen.
-> Lösung dann einfach

aber danke für die Aufmerksamkeit

Andes
22.02.2007, 20:34:40
-> Lösung dann einfach

Damit wird bestimmt einer etwas anfangen können, der vielleicht dasselbe Problem hat und keine Lösung weiß. Bitte poste auch deine Lösung mit.

Pinki-)
24.02.2007, 15:53:30
Ich habe die Funktion in einer Externe JS-Datei geschrieben welche mit Hilfe von AJAX aufgeruffen wird. Damit vermeide ich ein versteckten Iframe in dem der Script ausgeführt wird, wo es dann zu Problemmen mit dem IE kommt.