проигнорируйте консоль поджигателя при отсутствии установки

Я использую console.log Firebug () для отладки моего веб-сайта. Если я пытаюсь просмотреть свой веб-сайт в браузерах без Firebug затем, я добираюсь, консоль не является определенной ошибкой. Существует ли способ корректно избежать этой ошибки?

Я нашел это потенциальное решение, но это кажется немного громоздким. И идеи?

6
задан hoju 14 January 2010 в 00:17
поделиться

9 ответов

121 --- 5086379-

Исходный код Firebug предоставляет файл для этого:

см. Firebugx.js

Не изобретате колесо каждый день :)

17
ответ дан 8 December 2019 в 03:26
поделиться
-

Я не думаю, что это будет намного лучше, чем обходной путь, с которым вы связываетесь. Конечно, можно расплавить его до простого определения console.log() и оставить в покое, но в сущности, вы не обойдете такую конструкцию.

Единственная альтернатива, которая приходит на ум, это проверка console.log каждый раз, когда вы вызываете его, и это еще более громоздко.

2
ответ дан 8 December 2019 в 03:26
поделиться

Честно говоря, я бы воспользовался этим. Он охватывает не только метод console.log(), но и каждый другой метод console, и прилично короткое количество строк. Тот факт, что он впервые был использован в медиаплеере Yahoo, похоже, говорит о том, что он отлично работает и с кросс-браузером.

Этот бит кода - ваш лучший вариант, на самом деле он прилично элегантен и должен работать в большинстве случаев. До тех пор, пока вы будете комментировать над фрагментом именно то, для чего он нужен (чтобы не смущать будущих разработчиков), все должно быть в порядке.

2
ответ дан 8 December 2019 в 03:26
поделиться

Связанное решение в основном является вариантом (с несколькими дополнительными функциями) этого:

EDIT Нижеприведенный код на самом деле не работает при наличии firefox. Это научит размещать код без проверки только для того, чтобы показать мой не такой уж 1337 оператор || skillz:

window.console = window.console || {};
console.log = function(){};

Причина этого в том, что консоль firefox на самом деле является getter only свойством off window. Следовательно, мы не можем установить его. Вместо этого нужно использовать нечто подобное:

if (!window.console) {
  window.console = {};
  window.console.log = function(){};
}

Также, console.logconsole.warning, console.error) будет работать в браузерах Webkit, включая мобильный Safari, довольно круто, да?

.
3
ответ дан 8 December 2019 в 03:26
поделиться

Мое окончательное решение:

if(!("console" in window)) 
    window.console = {log: function() {}};
0
ответ дан 8 December 2019 в 03:26
поделиться

С верхней части головы:

if(!console)
{
     console = {};
     console.log = function() { };
}
-1
ответ дан 8 December 2019 в 03:26
поделиться

Решение @OcuS, безусловно, лучшее, но вы можете улучшить его с помощью моего: Отметьте этот способ входа в консоль FF: Войдите в консоль ошибок Firefox из JavaScript

Затем добавьте в firebugx.js эти 3 строки внутри IF:

window.console['error'] = li
window.console['warn'] = li
window.console['debug'] = li

Таким образом, вы увидите журнал каждой ошибки консоли , предупреждения и отладки , даже если Firebug is closed

1
ответ дан 8 December 2019 в 03:26
поделиться

Я всегда создаю свои кроссбраузерные обертки для функций, похожих на console.log, и выглядит это примерно так:

function log(a){
try{
  console.log(a);
  }catch(er){
   try{
     window.opera.postError(a);
     }catch(er){
     //no console avaliable. put 
     //alert(a) here or write to a document node or just ignore
     }
  }

}

Это можно расширить для любых браузеров. в IE при отладке я бы рекомендовал поместить этот код jquery в последний catch:

$('body').append('<pre>'+JSON.serialize(a)+'</pre>');

Вы должны добавить JSON.serialize в ваш скрипт. IE не имеет его (IE8 может иметь, я не уверен)

4
ответ дан 8 December 2019 в 03:26
поделиться

Вы можете использовать этот код, чтобы проверить, существует ли объект консоли

if('console' in window && 'log' in window.console)
{
    // code using console.log here
}

Или этот код

if(typeof window.console != 'undefined'
&& typeof window.console.log != 'undefined')
{
    // code using console.log here
}

Также вы можете прочитать этот пост http://alexandershapovalov.com/firebug-console-is-not-defined-60/ Внутри поста ссылка, как создать оболочку jQuery для консоли

1
ответ дан 8 December 2019 в 03:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: