HTML in XMLHttpRequest
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Die W3C-XMLHttpRequest
Spezifikation fügt HTML-Parsing-Unterstützung zu XMLHttpRequest
hinzu, das ursprünglich nur XML-Parsing unterstützte. Diese Funktion ermöglicht es Webanwendungen, eine HTML-Ressource als geparstes DOM unter Verwendung von XMLHttpRequest
zu erhalten.
Um einen Überblick darüber zu erhalten, wie XMLHttpRequest
im Allgemeinen verwendet wird, siehe Verwendung von XMLHttpRequest.
Einschränkungen
Um die synchrone Verwendung von XMLHttpRequest
zu entmutigen, ist HTML-Unterstützung im synchronen Modus nicht verfügbar. Zudem ist HTML-Unterstützung nur verfügbar, wenn die responseType
-Eigenschaft auf "document"
gesetzt wurde. Diese Einschränkung vermeidet unnötiges Zeitverschwenden beim Parsen von HTML, wenn Altcodes XMLHttpRequest
im Standardmodus verwenden, um responseText
für text/html
-Ressourcen abzurufen. Außerdem vermeidet diese Einschränkung Probleme mit Altcoden, die davon ausgehen, dass responseXML
für HTTP-Fehlerseiten null
ist (die oft einen text/html
-Antwortinhalt haben).
Verwendung
Das Abrufen einer HTML-Ressource als DOM mit XMLHttpRequest
funktioniert genauso wie das Abrufen einer XML-Ressource als DOM mit XMLHttpRequest
, jedoch können Sie den synchronen Modus nicht verwenden und Sie müssen explizit ein Dokument anfordern, indem Sie dem responseType
-Eigenschaft des XMLHttpRequest
-Objekts nach dem Aufruf von open()
, aber vor dem Aufruf von send()
, den String "document"
zuweisen.
const xhr = new XMLHttpRequest();
xhr.onload = () => {
console.log(xhr.responseXML.title);
};
xhr.open("GET", "file.html");
xhr.responseType = "document";
xhr.send();
Zeichencodierung
Wenn die Zeichencodierung im HTTP-Content-Type
Header deklariert ist, wird diese Zeichencodierung verwendet. Andernfalls, wenn ein Byte-Order-Mark vorhanden ist, wird die vom Byte-Order-Mark angegebene Codierung verwendet. Andernfalls, wenn ein <meta>
-Element die Zeichencodierung innerhalb der ersten 1024 Bytes der Datei deklariert, wird diese Codierung verwendet. Andernfalls wird die Datei als UTF-8 dekodiert.
Spezifikationen
Specification |
---|
XMLHttpRequest # interface-xmlhttprequest |