Выяснение наличия консоли
Мне было интересно, как я могу узнать с javascript, если доступен объект консоли?
У меня проблема: если я забуду удалить отладочный вывод, например console.log('sthg')
, я получаю ошибки в нескольких браузерах, если нет firebug или аналогичных активных.
спасибо за помощь
рядом с этой проблемой меня интересует вся информация об объекте консоли. есть кто-нибудь ссылку на документацию или так? это стандарт? и так далее...
Ответы
Ответ 1
Проверить свойство существует как член window
:
if (window.console) {
}
рядом с этой проблемой меня интересует вся информация об объекте консоли. есть кто-нибудь ссылку на документацию или так? это стандарт? и так далее...
Просмотрите документацию Firebug для API консоли; Chrome и Safari реализуют большинство, но не всех, методов, перечисленных там. Там нет стандартного определения того, что должно быть в консоли, поэтому вам нужно протестировать каждый браузер, чтобы узнать, поддерживает ли он эту функцию.
Ответ 2
Хороший простой и короткий способ вывода на консоль безопасно выглядит следующим образом:
window.console && console.log('Debug message');
Ответ 3
вот что я использую. помните, что я только половинчато поддерживаю браузеры без поддержки консоли. и я только когда-либо использую console.log(), но вы можете увидеть, как его можно расширить для поддержки console.dir(), console.info() и т.д.
var console = console || {
"log": function(stuff) {}
};
Мне это нравится, потому что вызов его не вызывает ошибку, но возвращает [ undefined], что, по моему мнению, подходит.
Обратите внимание, что многие люди до (и после) нас писали похожие полины:
https://gist.github.com/search?q=console+%7C%7C+console
Ответ 4
Определено firebug, IE8 (нужно открыть инструменты для разработчиков с помощью F12), Chrome и т.д., но нет определенной спецификации для Это. Существует console.log wrapper, что делает его очень простым в использовании, кросс-браузером, поэтому, если консоль не существует, ваш код не работает Взорвется.
Ответ 5
try{
console.log("test")
}
catch(e){
console={},
console.log=function(a){}
}
просто поместите его в верхнюю часть вашего JS файла, а затем используйте console.log(); без каких-либо проблем с ошибкой браузера, у меня также была эта ошибка в IE9
Ответ 6
Я всегда включаю это в верхнюю часть моего HTML-заголовка, прежде чем загружать что-либо еще. Отладка с console.debug слишком длинная для меня. И мне нравится переключать использование этих функций консоли.
Не знаю, как оптимизирован код, но он всегда выполняет задание.
(function() {
var consoleDisabled = false;
if (consoleDisabled) {
window.console = undefined;
}
if (window.console == undefined) {
window.console = {
debug: function() {
return true;
},
info: function() {
return false;
},
warn: function() {
return false;
},
log: function() {
return false;
}
}
}
debug = (function(args) {
window.console.debug(args);
});
info = (function(args) {
window.console.info(args);
});
warn = (function(args) {
window.console.warn(args);
});
log = (function(args) {
window.console.log(args);
});
})();
debug(somevar);
info(somevar);
warn(somevar);
log(somevar);
Ответ 7
Самый простой способ:
if (window.console){
console.log('do something');
}
вместо написания:
console.log('do something');
Ответ 8
может быть...
if (console) {
// do stuff
}