createElement, setAttribute,.. IE DOM Bug?
Bernhard Berger
- javascript
0 wahsaga
Hallo Leute,
ich habe gestern ein kleines Script entworfen, welches mir einen modalen Dialog erzeugen sollte (mit ner AJAX-Styled Ladegrafik darin), sobald ein Formular abgeschickt wird. Im Firefox, Opera und Safari läuft das Teil auch problemlos - der IE hat aber wieder seine Macken und ich weis nicht warum.
Die verwendeten Methoden werden lt. SelfHTML alle von IE >= 6 unterstüzt, das Script jedoch funktioniert weder im 6er noch im 7er Internet Explorer.
Hat von euch jemand ne Idee warum?
URL zum Angucken: http://www.kolorartists.at/index.php?id=29
Funktionen:
-----------
// Die Methode wird onsubmit aufgerufen und erzeugt die DIV Container
function displayLoadingImage() {
var myDiv = document.createElement("div");
var Id = document.createAttribute("id");
Id.nodeValue = "greyScreen";
myDiv.setAttributeNode(Id);
var myContent = document.createElement("div");
var myText = document.createTextNode("Ihre Anfrage wird bearbeiet. Bitte haben sie etwas Geduld!");
var myId = document.createAttribute("id");
myId.nodeValue = "greyScreenText";
myContent.setAttributeNode(myId);
myContent.appendChild(myText);
//myDiv.appendChild(myContent);
var Ausgabebereich = document.getElementsByTagName("body")[0];
Ausgabebereich.appendChild(myDiv);
Ausgabebereich.appendChild(myContent);
}
// Die Methode wird body onload aufgerufen und schreibt das onload-Ereignis ins Form-Tag
function initializeImageLoader() {
var Forms = document.getElementsByTagName("form");
var dLI = document.createAttribute("onsubmit");
dLI.nodeValue = "displayLoadingImage()";
for (i = 0; i < Forms.length; i++) {
Forms[i].setAttributeNode(dLI);
}
}
hi,
Die verwendeten Methoden werden lt. SelfHTML alle von IE >= 6 unterstüzt, das Script jedoch funktioniert weder im 6er noch im 7er Internet Explorer.
"Funktioniert nicht" taugt nichts als Problembeschreibung.
Fehlermeldungen? Vom erwarteten abweichendes Verhalten? Ergebnisse deiner sonstigen Debug-Versuche?
Ansonsten kann man nur zum x-ten Mal wiederholen, dass setAttribute im IE oftmals Probleme macht, und stattdessen die simple Schreibweise
objekt.attribut = wert;
zu bevorzugen ist.
gruß,
wahsaga