Hi,
ich habe ein Problem mit IE7 (FF funktioniert). Ich kann alle Attribute außer 'name="lol"' dynamisch erstellen. Hier ist die vereinfachte Funktion (Habe hier die wesentlichen Teile gepastet. Die Funktion vereinfach das DOM für mich, weil man nicht mehr für jedes Element so viele Schritte ausführen muss):
function addElement(foo, attributesStr) {
var newElement = document.createElement(foo);
// ... //
if(attributesStr != null) {
// Hier wird der attributesStr zerlegt, spielt hier keine Rolle...
for(var i = 0; i < attributes.length; ++i) {
attributes[i] = new Array(tmp[0],tmp[1]);
newAttribute = document.createAttribute(attributes[i][0]);
newAttribute.nodeValue = attributes[i][1];
newElement.setAttributeNode(newAttribute); // <-- IE7: Nicht implementiert. (?!)
}
}
// ... //
where.appendChild(newElement);
}
Das komische: IE7 erstellt trotzdem dynamisch fast alles, was ich will, außer das Attribut "name". Ich kann zum Beispiel folgendes tun:
createElement("div", "foo::bar"); // in HTML: <div foo="bar"></div>
Aber folgendes nicht:
createElement("input", "foo::bar#name::mode#id::mode"); // in HTML: <input foo="bar" id="mode" />
"name" ist kein reserviertes Wort. Für ein funktionierendes Formular brauche ich natürlich "name". Woran könnte es liegen?