habe eine kleines Javascript geschrieben, das mittels XMLHttpRequest eine xhmtl Seite holt und daraus einige Divs in die eigentliche Seite einhängt.
Unter Firefox, Chrome, Safari und Opera funktioniert alles einwandfrei. Nur im Internet Explorer bekomme ich kein responseXML sondern nur den responseText.
Die zu ladende Seite ist mit dem w3c validator durchgecheckt (http://validator.w3.org/) und einwandfreies xhtml 1.0 Strict.
Lade ich nun die Seite mit .loadXML(xmlhttp.responseText); in das eigentliche (xml-)Objekt, funktioniert anscheinend das .getElementsByTagName("div"); nicht mehr.
// ... var xmlDoc = xmlhttp.responseXML; if(xmlDoc.xml == "") { xmlDoc.loadXML(xmlhttp.responseText); var divs = xmlDoc.getElementsByTagName("div"); //... } //...
Die ganze restliche Logik ist so aufgebaut, dass im Firefox/Safari/... alles funktioniert. Wie kann ich das beibehalten?
P.S.: Webserver XAMPP Browser IE 8 mit MS "IE Developer Toolbar" und IEPro
Warum getElementsByTagName nicht funktioniert kann ich dir so nicht sagen. Vielleicht solltest Du prüfen ob xmlDoc.parseError.errorCode einen Fehler enthält und damit mit dem XML nicht klarkommt.
Um eine Ebene darüber anzusetzen würde ich mir ansehen wie man trotzdem an das responseXML im IE kommt, anstatt Deinen Workaround zu benutzen. Ich zitiere aus der MSDN:
If the response was generated by an Active Server Pages (ASP) page and the Multipurpose Internet Mail Extension (MIME) type was not correctly set to one of the supported MIME types using the ASP method Response.ContentType then responseXML will be empty.
The supported MIME types for MSXML 6.0 are: "text/xml", "application/xml" or anything that ends with "+xml", for example "application/rss+xml".
Mit anderen Worten: Wenn Du das XML Serverseitig generierst, dann ist es wichtig, dass im HTTP-Header der korrekte MIME Typ angegeben wird, dann müsste auch xmlhttp.responseXML Text enthalten.