使用DOMParser.parseFromString时是否可以提供baseURI?

Chr*_*s_F 5 javascript

DOMParser用来解析包含相对URL的文档,用于诸如表单的action属性之类的事情。因为由创建的文档的baseURI DOMParser正在null访问action属性,所以会产生一个空白字符串。我可以通过使用来解决这个问题,getAttribute但是如果可以使用baseURI来指定它DOMParser,那将是理想的选择。

cus*_*der 5

与其<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)