Есть ли консольный логгер для IE? Я пытаюсь записать в консоль кучу тестов / утверждений, но не могу сделать это в IE.
Есть ли консольный логгер для IE? Я пытаюсь записать в консоль кучу тестов / утверждений, но не могу сделать это в IE.
Ответы:
Вы можете получить доступ к консоли сценариев IE8, запустив «Инструменты разработчика» (F12). Щелкните вкладку «Сценарий», затем щелкните «Консоль» справа.
Из кода JavaScript вы можете делать любое из следующих действий:
<script type="text/javascript">
console.log('some msg');
console.info('information');
console.warn('some warning');
console.error('some error');
console.assert(false, 'YOU FAIL');
</script>
Кроме того, вы можете очистить консоль, позвонив console.clear()
.
ПРИМЕЧАНИЕ. Похоже, вы должны сначала запустить Инструменты разработчика, а затем обновить страницу, чтобы это работало.
console.log()
будет прерван. Всегда защищайте свои звонки с помощьюwindow.console && console.log('stuff');
Начиная с версии 8, в Internet Explorer, как и в других браузерах, есть собственная консоль. Однако, если консоль не включена, console
объект не существует, и вызов console.log
вызовет ошибку.
Другой вариант - использовать log4javascript (полное раскрытие: написано мной), у которого есть собственная консоль ведения журнала, которая работает во всех основных браузерах, включая IE> = 5, плюс оболочка для собственной консоли браузера, которая позволяет избежать проблемы с неопределенным console
.
если вы в конечном итоге выпускаете console.log()
команды в производство, вам нужно внести какое-то исправление для IE, потому что console
оно определяется только в F12
режиме отладки.
if (typeof console == "undefined") {
this.console = { log: function (msg) { alert(msg); } };
}
[очевидно, удалите предупреждение (сообщение); заявление, как только вы убедитесь, что оно работает]
См. Также 'console' is undefined error for Internet Explorer для других решений и более подробной информации.
Существует Firebug Lite, который предоставляет множество функций Firebug в IE.
В своей книге «Секреты Javascript Ninja» Джон Ресиг (создатель jQuery) предлагает действительно простой код, который будет обрабатывать кроссбраузерные проблемы console.log. Он объясняет, что хотел бы иметь сообщение журнала, которое работает со всеми браузерами, и вот как он его закодировал:
function log() {
try {
console.log.apply(console, arguments);
} catch(e) {
try {
opera.postError.apply(opera, arguments);
}
catch(e) {
alert(Array.prototype.join.call( arguments, " "));
}
}
}
этом фрагменте отсутствует информация. :)
Для IE8 или поддержки консоли, ограниченной console.log (без отладки, трассировки, ...), вы можете сделать следующее:
Если console OR console.log undefined: создайте фиктивные функции для функций консоли (трассировка, отладка, журнал, ...)
window.console = {
debug : function() {}, ...};
В противном случае, если console.log определен (IE8) И console.debug (любой другой) не определен: перенаправьте все функции ведения журнала в console.log, это позволяет сохранить эти журналы!
window.console = {
debug : window.console.log, ...};
Не уверен в поддержке assert в различных версиях IE, но любые предложения приветствуются.
Вы можете использовать кроссбраузерную оболочку: https://github.com/MichaelZelensky/log.js
Для более старой версии IE (до IE8) нелегко увидеть журнал консоли на панели инструментов IE Developer Toolbar, после нескольких часов исследований и опробования множества различных решений, наконец, следующая панель инструментов - отличный инструмент для меня:
Основным преимуществом этого является предоставление консоли для IE6 или IE7, поэтому вы можете видеть, в чем ошибка (в журнале консоли).
Я всегда делал что-то вроде этого:
var log = (function () {
try {
return console.log;
}
catch (e) {
return function () {};
}
}());
и с этого момента просто всегда используйте log (...), не слишком увлекайтесь использованием консоли. [warn | error | и так далее], просто сохраняйте простоту. Я обычно предпочитаю простое решение красивым внешним библиотекам, это обычно окупается.
простой способ избежать проблем с IE (с несуществующим console.log)
console.log()
работает только тогда, когда открыт инструмент IE dev (да, IE паршивый). см. stackoverflow.com/questions/7742781/…