DOM, который получается из DOMParser.parseFromString()
, не выглядит точно так же, как DOM, созданный браузером (chrome) с той же строкой, в частности, относительно рендеринга тегов <BR>
.
Если мы создадим <DIV>
, а затем добавим в него HTML, а затем проверим его внутренний текст, мы обнаружим, что тег <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>
отображались так же, как браузерделает с переводами строки?