@ Джефф Этвуд
Это правильная идея, но реализация все еще нуждается в работе. Я думаю, мой воздушный код просто не вырезал его:)
Я подозреваю, что упомянутое ранее исправление не работает, потому что prettify выполняет некоторую дополнительную обработку текста после вызова строки ~ 1000.
Пытаясь отследить содержимое в обратном направлении с момента его добавления на страницу, я наткнулся на этот комментарий в строке 1227:
// Replace <br>s with line-feeds so that copying and pasting works
// on IE 6.
// Doing this on other browsers breaks lots of stuff since \r\n is
// treated as two newlines on Firefox, and doing this also slows
// down rendering.
Когда я убрал условие isIE6 из кода, оно в основном работало в IE7 (был дополнительный разрыв строки вверху и внизу) и Firefox 3 ... Но я предполагаю, что это вызывает проблемы со старыми версии FFX.
По крайней мере, кажется, что IE7 потребует \ r \ n, а не просто \ n. Выяснение того, что именно будет работать, с какими браузерами будет проходить более сложную тестовую настройку, чем у меня сейчас под рукой.
В любом случае, вставка \ r \ n для IE7 - это, по сути, то, что должно произойти. Я продолжу ковыряться в прихоти, чтобы посмотреть, смогу ли я сузить его дальше.
ОБНОВЛЕНИЕ: Похоже, IE7 удаляет символы новой строки (\ r или \ n) из строк, которые назначены свойству innerHTML. Похоже, их нужно добавить обратно, около строки 1227.
Правильное решение, вероятно, будет означать вставку тега-заполнителя вокруг строки 1000, а затем заменить его вокруг строки 1227.