innerHtml и innerText уничтожают вкладки в Internet Explorer

Я хочу взять содержимое текстового поля и поместить его в <pre>. Проблема в том, что если я установлю свойство innerHTML pre на значение textarea, все вкладки и разрывы строк будут удалены в Internet Explorer. Если я использую innerText вместо innerHtml, я получу разрывы строк, но вкладки все равно исчезнут. В других браузерах работает нормально.

Есть ли решение для этого?


person Martin    schedule 11.08.2010    source источник


Ответы (1)


Создайте узел DOM Text:

pre.innerHTML= '';
pre.appendChild(document.createTextNode('A\tB\r\nC'));

Новая строка в стиле Windows (\r\n) является поддельной (содержимое DOM всегда должно иметь новые строки, нормализованные до \n), но по какой-то причине кажется необходимой в IE.

person bobince    schedule 11.08.2010