-
http://elv1s.ru/files/js/highlight/bug/ — напишите что-нибудь в правом фрейме и баг произойдёт.
http://elv1s.ru/files/js/highlight/bug_fixed/ — тут баг исправлен.
Ошибка была такая:
environment is null [Break on this error] environment.replaceChild(container.firstChild, block.parentNode); highlight.js (line 330)В этом куске кода:
// See these 4 lines? This is IE's notion of "block.innerHTML = result". Love this browser :-/ var container = document.createElement('div'); container.innerHTML = '<pre><code class="' + class_name + '">' + result + '</code></pre>'; var environment = block.parentNode.parentNode; environment.replaceChild(container.firstChild, block.parentNode);Я её исправил. Бранч тут: lp:~nikita-vasilev/+junk/highlight
-
М-м... Так, к сожалению, нельзя делать. Эти четыре строки там не от хорошей жизни, а дял обхода бага в IE (о чем в комментарии и написано). Баг этот до сих пор есть, судя по соседней теме в этом же форуме.
Если я правильно понимаю, что там происходит, в какой-то момент
<pre>отцепляется из документа и делаете замену в нем. По идее, если его включать в документ до замены, то бага не будет.P.S. Спасибо за найденную опечатку в test.html
-
Похоже мы не поняли друг друга. Я плохо описал, наверное.
Я не менял поведение IE. Я просто добавил условные комментарии для IE, a для остальных браузеров оставил только "block.innerHTML = result". Это решило мою проблему и немного ускорило работу не_IE браузеров.
(тестовая страница выше не работает в IE не из-за highlight.js :-) )
-
Не знал о таком :-). Теперь понял :-).
-
Из-за этого фикса теперь не проставлен
classу<code>в не IE браузерах, часть стилей будет работать слегка не так -
Спасибо, поправил.
Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.


