console.log() определен, но не регистрируется в IE - пустая консоль

Javascript на странице в Internet Explorer (8 и 9) с открытыми инструментами разработчика достигает console.log(), что определено, но в реальном журнале ничего не появляется.

Что пробовали:

  • Двойная проверка с помощью alert()s, что console определено и что console.log является функцией.
  • Проверка с помощью alert()s до и после того, как код достигает строки console.log(),
  • Проверка кода на наличие резервных копий IE, таких как if(ie){console={log:function(){}}}, удаление ссылок на библиотеки и проверка фрагментов кода на наличие упоминаний console
  • Проверка настроек IE и включение всего, что связано с отладкой
  • Проверка работоспособности IE путем загрузки сторонней страницы с console.log()s (например, http://jsbin.com регистрирует "init "и "бегун")
  • Замена console на window.console

Таким образом, консоль есть и активна, но сообщения консоли не отображаются в реальной консоли (ни на вкладке «Сценарий», ни на вкладке «Консоль»).

Что еще может помешать console.log() на самом деле регистрировать что-либо, даже если инструменты разработчика открыты, а console.log является определенной функцией?


person user56reinstatemonica8    schedule 24.01.2014    source источник


Ответы (1)


Виновником в данном случае оказался firebug lite.

Мои страницы тестовой разработки часто включают это, чтобы (по иронии судьбы) помочь определенным типам отладки в IE:

<!--[if IE]>
<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>
<![endif]-->

Поскольку в текстовых редакторах он отображается как комментарий, его легко не заметить.

Оповещение alert(console.log); до и после показывает, что firebug lite меняет функцию console.log с собственного кода на это:

function(){return f.apply(c,arguments)}

... который по какой-то причине (на данный момент здесь) ничего не делает.

Без участия Firebug Lite alert(console.log); в IE дает следующее:

function log() {
[native code]
}

... и делает свой обычный трюк с ведением журнала, если инструменты разработчика f12 открыты, и сбоем, если это не так.

person user56reinstatemonica8    schedule 24.01.2014
comment
После публикации я просто заметил это в связанных - Firebug Lite в IE подавляет операторы console.log? где ответ содержит несколько советов о том, как заставить Firebug Lite работать хорошо - person user56reinstatemonica8; 24.01.2014