Я почти уверен, что Симе Видас прав. Я пробовал почти все, и все, что я пытаюсь (innerText, innerHTML, jQuery методы, TextRange, элемент клонирования и помещая его в предварительный элемент и т. Д. И т. Д.), Удаляется пустое пространство. Я предполагаю, что IE просто удалит его при любом типе вызова. Он явно присутствует во время рендеринга, так как пробел: pre покажет его, но извлечение его через javascript всегда удалит пробел, за исключением содержимого pre и textarea.
Это поведение изменилось в IE9. Единственным решением в более старых версиях было бы заменить символы новой строки на теги
(или что-то еще, точку с запятой и т. Д.) На сервере, если это возможно, и затем вернуть их обратно в \ n в javascript после получения текстового содержимого.