Ajax responseText als HTML behandeln

zer0

Erfahrenes Mitglied
Hallo,

ich setze ein XmlHttpRequest ab, und bekomme als responseText die HTML Seite zurück. Das ist auch alles gut so. Nur benötige ich jetzt ein Element aus der Seite vom response. Deswegen will ich mittels getElementById() das Element auswählen, aber der Text von responseText wird anscheinden nicht als HTML behandelt.

Kann ich das irgendwie machen?

Gruß
 
Moin,

ja, das kannst du machen.

Sofern die HTML-Source, die du da geliefert bekommst, gültiges XML ist, kannst du per responseXML auf das Dokument-Objekt zugreifen.
 
Und im gültiges XML zu bekomme muss ich im HTML beim meta-Tag den MimeType "application/xhtml+xml" angeben oder?

Den wenn ich responseXML benutze bekomme ich nur "null" zurück!
 
Aber ich habe doch schon alles gemacht. Mein Dokument ist auch XHTML valide.

Ich habe es mal so probiert, aber geht auch nicht:
HTML:
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
...
 
Ich mache folgendes:
Das ist genau das, was ich auch brauche. Kannst du mir vllt ein Beispiel geben wie du das meinst dort, denn das versteh ich nicht ganz? :)

Code:
var dummy = document.createElement('div');
    dummy.innerHTML=xmlHttp.responseText;

dummy ist ein Elementknoten, auf den du alle DOM-Methoden eines soclhe Knoten anwenden kannst.
Da ist aber der Haken: so ein Knoten hat keine Methode getElementById() :D

bspw. getElementsByTagName() könntest du hingegen darauf anwenden, denn das ist eine Methode von document und Elementknoten
 
Okay, danke schön. Inzwischen habe ich es auch geschafft das ich gültiges XML geliefert bekomme. Ich hab nur noch vergessen den richtigen Header in PHP zu senden :p

Jetzt ist die Frage was ich benutze. XML wäre zwar eleganter, nur das Problem ist das andere User Einträge machen können und also nicht valides gültiges XHTML eintragen können.

Damit würde es dann gleich zu verarbeitungsfehlern kommen.
Hmm, was benutz ich jetzt besser? :D
 
Naja, optimal wäre natürlich, wenn du die Benutzereingaben so bearbeitest, dass sie valide sind, bevor sie auf die Welt losgelassen werden.

Es muss ja nicht mal valides XHTML sein, valides XML ist ausreichend, damit responseXML etwas liefert.
 
Zurück