элементы ожидаются и, как правило, оставляют пробелы в покое. Это означает, что CR и LF могут вести себя так, как ожидают языковые программисты - как это делают Chrome и FF4.

боте мы наткнулись на то, что Bugzilla создает HTML-вывод, который приводит к слишком длинным строкам, потому что браузер не разбивает их. Это происходило в Chrome, но не в Firefox 3.5, поэтому нам было все равно. Но Firefox 4 ведет себя так же, как Chrome, поэтому нам пришлось искать другой обходной путь.

Примером является:

<html>
  <body>
    <pre>
      Lorem ipsum dolor sit amet, consetetur sadipscing elitr,&#013;sed diam nonumy eirmod tempor invidunt ut labore et&#013;dolore magna aliquyam erat, sed diam voluptua. At vero eos&#013;et accusam et justo duo dolores et ea rebum. Stet clita kasd&#013;gubergren, no sea takimata sanctus est Lorem ipsum dolor sit&#013;amet.&#013;
    </pre>
  </body>
</html>

Сервер использует только CR в качестве переноса строки, что очень редко, и обычные альтернативы (CR + LF, только LF) работают правильно, поэтому правильный способ исправить это - сказать серверу Bugzilla использовать один из этих методов переноса строк. В любом случае, мне любопытно, почему это не работает, и игнорирование переносов строк кажется "правильным" способом для браузеров.

Кроме того, я нашел странный локальный обходной путь для Chrome и FF 4 с использованием скрипта Greasemonkey (модифицированная версияэтот):

var els = document.getElementsByTagName("*");
for(var i = 0, l = els.length; i < l; i++) {
  var el = els[i];
  el.innerHTML = el.innerHTML;
}

Кажется, это не повлияет на страницу, но с помощью этого сценария разрывы строк неожиданно отображаются правильно.

Итак, мои вопросы:

Является ли Chrome / FF 4 «правильным» способом справиться с такими переносами строк?<pre>?Почему этот скрипт Greasemonkey работает?

Ответы на вопрос(2)

Ваш ответ на вопрос