Да, похоже, ошибка в в том, как Firefox 4 , в обработке , обрабатывает окончания строк.
Элемент resblock - это элемент <pre>
, содержащий несколько текстовых узлов, которые имеют дело с новыми строками и отступами.Когда они создаются с помощью сценариев, они содержат ВОЗВРАТ КАРЬЕРЫ (U + 000D), за которым следует последовательность неразрывных пробелов.
Однако после выполнения resblock.innerHTML = resblock.innerHTML;
они теперь содержат LINE FEED (U +000A), за которыми следуют неразрывные пробелы.
Похоже, что Firefox 4 обрабатывает только символ перевода строки как разрыв строки и отображает части иерархии классов на новых строках.
Редактировать: то, что сказал Борис.
Проект спецификации HTML5 Раздел 8.2.2.3 Предварительная обработка входного потока говорит:
U + 000D ВОЗВРАТ ЗАРЯДА (CR)символы и символы U + 000A LINE FEED (LF) обрабатываются специально.Любые символы CR, за которыми следуют символы LF, должны быть удалены, а любые символы CR, за которыми не следуют символы LF, должны быть преобразованы в символы LF.Таким образом, новые строки в HTML DOM представлены символами LF, и на входе на этапе токенизации никогда не бывает символов CR.