我DOMParser用来解析包含相对URL的文档,用于诸如表单的action属性之类的事情。因为由创建的文档的baseURI DOMParser正在null访问action属性,所以会产生一个空白字符串。我可以通过使用来解决这个问题,getAttribute但是如果可以使用baseURI来指定它DOMParser,那将是理想的选择。
与其<base>在解析之前在 HTML 中注入 a ,您是否考虑过在解析之后做类似的事情?
function parse(baseUri, htmlStr) {
var doc = (new DOMParser).parseFromString(htmlStr, 'text/html');
var base = doc.createElement('base');
base.href = baseUri;
doc.head.appendChild(base);
return doc;
}
var parsedDoc = parse('http://example.com', '<form action="/index.html"></form>');
console.log(
parsedDoc.querySelector('form').action
)Run Code Online (Sandbox Code Playgroud)