Предварительно отформатированный текст Javascript с разрывами строк в разных браузерах

У меня есть предварительно отформатированные строки с разрывами строк и несколькими пробелами, и я хочу добавить их в текстовый узел.

<pre id="bar"></pre>

<script>
   var string = "Preformatted"
                + "\n"  // \r, \r\n, \n\r or what else?
                + "multispace     string";
   var text = document.createTextNode(string);
   document.getElementById('bar').appendChild(text);
</script>

Я пытался использовать в качестве разрыва строки:

  • \nразрывает строки во всех браузерах, но в IE (тестирую на 7) становится пробелом
  • \rразрывает только строки в IE
  • \r\nработает во всех браузерах, но в IE пробел в начале второй строки ужасен
  • \n\rтоже во всех нормально, но в IE пробел в конце конец первой строки неприемлем для моего макета.

Я не могу использовать
и innerHTML, потому что IE сворачивает мульти-пробелы.
jQuery .text(string)ведет себя точно так же, как .appendChild(createTextNode(string))

Как вставить разрывы строк в разных браузерах?
В конце концов, как я могу легко определить, поддерживает ли браузер \nили \r?

7
задан Salvador 4 June 2012 в 19:31
поделиться