При открытии локально сохраненных страниц
учебника не работает подсветка кода.
Firebug при этом показывает следующее сообщение в консоли ошибок:
Код:
|
ReferenceError: docRoot is not defined |
Ошибка возникает только для страниц, которые были скачаны оффлайн-браузером Teleport Pro, т.к. там они сохраняются "как есть". Браузер Firefox сохраняет страницу по-другому, - меняя ее код, - и ошибка не появляется.
Ошибка вызвана тем, что не происходит правильная инициализация одного из классов SyntaxHighlighter - SHStrings. Конкретный участок кода, вызывающий ошибку, находится в файле
shCore.js библиотеки SyntaxHighlighter, строки 40 и 41:
Код:
|
showhtml: location.protocol == 'file:' ?
docRoot+'/files/local/showhtml.html' :
'http://ru.lookatcode.com/showhtml', showjs:location.protocol == 'file:' ?
docRoot+'/files/local/showjs.html' :
'http://ru.lookatcode.com/showjs', |
Точнее, ошибку вызывает сжатая версия этого файла, которая лежит в папке /files/js, но ведь она, скорее всего, создается у вас автоматически?
Как видите, переменная docRoot нигде не инициализирована, и ошибка возникает только при открытии локального файла (location.protocol == 'file:'). Соответствующие файлы (
showhtml.html и
showjs.html) также отсутствуют на сервере.
Возможно, для устранения ошибки нужно обновить библиотеку
SyntaxHighlighter, в последней версии (3.0.83) этот участок кода уже переработан и выглядит совершенно по-другому. Если я не ошибаюсь, ваш сайт использует SyntaxHighlighter версии 2.1.382, вышедшую около 2 лет назад.