Подтвердить что ты не робот

Выяснение наличия консоли

Мне было интересно, как я могу узнать с javascript, если доступен объект консоли?

У меня проблема: если я забуду удалить отладочный вывод, например console.log('sthg'), я получаю ошибки в нескольких браузерах, если нет firebug или аналогичных активных.

спасибо за помощь

рядом с этой проблемой меня интересует вся информация об объекте консоли. есть кто-нибудь ссылку на документацию или так? это стандарт? и так далее...

4b9b3361

Ответ 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
}