С XMLHttpRequest
это довольно просто - с responseType
как document
, сглаженное XMLHttpRequest
свойство .response
будет содержать ответ document , который вы можете использовать обычным Методы DOM включены. Например, следующий код выберет и зарегистрирует текст первого элемента с именем класса foo
из документа ответа:
function get(url){
var r = new XMLHttpRequest();
r.open('GET', url, true);
r.responseType = 'document';
r.onload = function () {
if (r.readyState !== 4 || r.status !== 200) return;
// also handle error statuses
// now, r.response is a document:
const doc = r.response;
console.log(doc.querySelector('.foo').textContent);
};
r.send();
}
Если вы используете более современный метод fetch
, вам придется явно преобразовать текст ответа в документ, возможно, с помощью DOMParser
. Например:
function get(url){
fetch(url)
.then(res => res.text())
.then((text) => {
const doc = new DOMParser().parseFromString(text, 'text/html')
console.log(doc.querySelector('.foo').textContent);
});
}
Одна из приятных особенностей DOMParser
заключается в том, что вы можете использовать его для преобразования любой (допустимой) строки HTML в документ.