Чтобы расширить ответ Криса, проблема в том, что браузер отображает текст, который вы пишете, так же, как и любой другой фрагмент HTML, что означает, что пробел (включая возврат каретки) обрабатывается как разделитель слов, не разделитель строки или абзаца. И несколько последовательных пробельных символов сокращаются до одного пробела. Это объясняется далее в спецификации html .
Это отличается от того, как он обрабатывает текст в элементе textarea.
Итак, как предложил Крис, вам нужно заменить возврат каретки в вашей строке на элементы html <br>
:
var enteredText = document.getElementById("TextArea").value;
var updatedText = enteredText.replace(/\n/g, '<br />');
document.write(updatedText);
Примечание: вы должны иметь возможность получить значение текстовой области непосредственно с помощью .value
вместо того, чтобы сказать .childNodes[0].nodeValue
.
Примечание 2: Я повторяю то, что сказал Крис о document.write()
- обычно это не лучший вариант.
Примечание 3: Если вы работаете с системой, отличной от Windows, вам также может потребоваться заменить \r
.