элементы ожидаются и, как правило, оставляют пробелы в покое. Это означает, что CR и LF могут вести себя так, как ожидают языковые программисты - как это делают Chrome и FF4.
боте мы наткнулись на то, что Bugzilla создает HTML-вывод, который приводит к слишком длинным строкам, потому что браузер не разбивает их. Это происходило в Chrome, но не в Firefox 3.5, поэтому нам было все равно. Но Firefox 4 ведет себя так же, как Chrome, поэтому нам пришлось искать другой обходной путь.
Примером является:
<html>
<body>
<pre>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr,
sed diam nonumy eirmod tempor invidunt ut labore et
dolore magna aliquyam erat, sed diam voluptua. At vero eos
et accusam et justo duo dolores et ea rebum. Stet clita kasd
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
amet.
</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 работает?