由DOMParser.parseFromString()
生成的DOM与给定相同字符串的浏览器(chrome)创建的DOM似乎并不完全相同,特别是关于<BR>
的呈现标签。
如果我们创建一个<DIV>
,然后向其中添加一些HTML,然后检查其innerText,则会发现<BR>
标签被忽略了。
div=document.createElement("div")
div.innerHTML="test<br>test"
console.log(div.innerText)
// prints -> "testtest"
但是,如果将其注入到浏览器渲染的文档中,则会发现<BR>
标签被换行符代替。
document.body.appendChild(div)
console.log(div.innerText)
// prints -> "test\ntest"
如果我们使用DOMPaser.parseFromString()
创建文档,则会发现<BR>
会忽略<DIV>
的方式,然后再将其注入文档。
p=new DOMParser()
doc=p.parseFromString("asdf<br>asdf", "text/html")
console.log(doc.body.innerText)
// prints -> "testtest"
// not -> "test\ntest"
是否有某种方法可以解析HTML字符串并使它呈现<BR>
标签,就像浏览器使用换行符一样?