可以fetch()做responseType = document吗?

时间:2017-08-04 17:01:36

标签: xmlhttprequest fetch-api

XHR的responseType='document'非常棒,因为它可以为您提供一个可以使用querySelector等的DOM文档:

var xhr = new XMLHttpRequest();
xhr.open('GET', '/', true);
xhr.responseType = 'document';
xhr.onload = function(e) {
  var document = e.target.response;
  var h2headings = document.querySelectorAll('h2');
  // ...
};

使用fetch方法可以实现吗?

1 个答案:

答案 0 :(得分:5)

fetch本身不支持它,因为API是纯粹的网络层API,不依赖于Web浏览器(see discussion),但它并不难实现:< / p>

fetch('/').then(res => res.text())
  .then(text => new DOMParser().parseFromString(text, 'text/html'))
  .then(document => {
    const h2headings = document.querySelectorAll('h2');
    // ...
  });