Когда вы присваиваете html свойству innerHTML, браузер интерпретирует эту строку на основе DOCTYPE, установленного для страницы. Вы будете зависеть от парсера, который браузер реализовал для этого DOCTYPE, и от браузера, реализовавшего указанный стандарт; читайте по-другому: «вы гарантированно получите разные результаты в разных браузерах».
При этом каждый браузер будет интерпретировать следующий HTML немного по-своему.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Testing textcontent</title>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" >
</head>
<body>
<form action="">
<textarea id="onlyText" rows="5" cols="40"></textarea>
<script type="text/javascript">
/*<![CDATA[*//*---->*/
var html = "text text <br><br> text";
var noTags = document.createElement("DIV");
noTags.innerHTML = html;
// Retrieve text from html
var textContent = "";
var oe = document.getElementById("onlyText");
if (oe.innerText == undefined) {
textContent = noTags.textContent;
} else {
textContent = noTags.innerText;
}
alert("DEBUG: textContent = " + textContent);
oe.innerHTML = textContent;
/*--*//*]]>*/
</script>
</form>
</body>
</html>
Добро пожаловать в сети. Ваш код будет отличаться.