// html data loaded from [http://example.org/some/path]
let htmlSource = `<!DOCTYPE html><html><head></head><body>
... <a href="relative"></a> ...
</body></html>`;
const dom = new DOMParser().parseFromString(htmlSource, 'text/html');
// this returns the value of the attribute as is
dom.links[0].getAttribute('href'); // -> "relative" / nothing new here
// this should resolve urls
dom.links[0].href // -> wait, relative to WHAT??
// if you run this code while being on [http://google.com] you'll get
dom.links[0].href // -> "https://www.google.com/relative"
// Also,
dom.location // -> null / you can't change it
dom.baseURI // -> "https://www.google.com/" / read-only
Похоже, DOMParser
неявно заставляет использовать текущую страницу location
как baseURI
для новых HTMLDocument
.
Почему бы не дать разработчику возможность (третий аргумент?) Явно указать местоположение документа?
Есть ли способ заставить DOMParser
уважать необязательный базовый URL? Обходные?