Не работает консоль Firebug на сайте Magento

При разработке модуля для магазина на Magento наткнулся на довольно забавный баг. При использовании в Javascript коде конструкций вид

console.debug('test')

в консоль Firebug ничего не выводилось. Сначала думал, что проблемы с Firefox или Firebug. Но простая проверка показала, что в другой вкладке и на другом сайт console.debug(…) работает нормально.
Поиск по интернету показал что это известная проблема сочетания «старых» версий Magento и новых версий Firebug

По сути код Magento проверяет наличие Firebug и если его нет, то на функции console.* ставит «заглушки». Но проверяет он это в том числе и по наличию поля firebug у объекта console. А в свежих версиях Firebug это поле убрали — и в результате получается что и для Firefox также «глушатся» функции консоли. И при попытке их использования ничего не происходит.

Исправляется это обновлением версии Magento. Либо не так радикально — правкой файла js/varien/js.js
В этом файле надо найти код проверки наличия console

if (!("console" in window) || !("firebug" in console))

и заменить его на правильный. Например на такой:

if (typeof(console) == "undefined")

Если других проблем нет, то консоль должна заработать.

Запись опубликована в рубрике Magento, Полезности с метками , . Добавьте в закладки постоянную ссылку.

Добавить комментарий