PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IE klaut mir Text beim Einfügen per innerHTML


Kukulkan
05.02.2009, 16:11:09
Hallo,

Ich baue Teile meiner Webseite dynamisch per XMLHttpRequest() auf.

Auf FireFox, Konqueror und Opera läuft es Problemlos. Beim IE 6 und 7 habe ich aber ein Problem damit, dass im nachgeladenen Code einfach Teile fehlen.

Ich instanziere XMLHttpRequest() so:
if (window.XMLHttpRequest) {
LChttp[ElementID] = new XMLHttpRequest();
} else if (window.ActiveXObject) {
LChttp[ElementID] = new ActiveXObject("Microsoft.XMLHTTP");
}
LChttp[ElementID].open("GET", URL, true);
LChttp[ElementID].onreadystatechange = LoadOutput;
LChttp[ElementID].send(null);

Ich hab das dann so getestet:
function LoadOutput() {
// outputs the result to the ElementID element
if (LChttp[ElementID].readyState == 4) {
var Content = LChttp[ElementID].responseText;
// set new content
document.getElementById(ElementID).innerHTML = Content;
// validate content
if (document.getElementById(ElementID).innerHTML == Content) {
alert("OK");
} else {
Message = "Fail in '" + ElementID + "' for " + LCLastURL[ElementID];
Message = Message + "\n";
Message = Message + "Länge Original: " + Content.length + "\n";
Message = Message + "Länge aus DOM: " + document.getElementById(ElementID).innerHTML.length + "\n";
alert(Message);

}
}
}
Bei fast allen Browsern spuckt es OK aus. Aber beim IE kommen dann Fehler. Beispiel-Fehler:

Fail im 'MainArea' for /test.php
Länge Original: 17539
Länge aus DOM: 13427

Wenn ich das im Developer Toolbar dann untersuche, dann fehlen aus dem Source wilde Teile. Mitten im Statement wird dann was rausgerissen oder weggelassen.

Innerhalb von LoadContent() kommt in Content definitiv das richtige an. Aber irgendwie klappt es beim setzen als InnerHTML nicht. Warum macht der IE die Daten hier beim Einfügen kaputt? Gibt es Regeln, dass man da manches nicht reintun darf?

Was kann das sein?

Kukulkan

Kukulkan
05.02.2009, 16:49:28
Hallo,

Ich hatte ein Anführungszeichen zu viel innerhalb eines <INPUT> Tags. Und das hat den IE dann völlig aus der Bahn geworfen.

Dennoch danke fürs Mitdenken!

Kukulkan