Консоль не определена, когда я специально проверяю ее наличие - PullRequest
1 голос
/ 27 октября 2009

Я пишу функцию быстрого ведения журнала, чтобы обернуть его вокруг console.log, чтобы предотвратить ошибки в дальнейшем при разработке (например, забытые операторы console.log в коде). Я использую функции mootools $defined и $type для проверки существования консоли и функции console.log перед ее вызовом. Однако, когда я отключаю firebug, я получаю следующую ошибку в firefox.

Ошибка: консоль не определена
Исходный файл: http://diagnostic.localhost/js/emp.custom.js
Линия: 6

EMP.log = function() {
 if (DEBUG && $defined(console) && $type(console.log) == 'function') { //line 6
  var args = Array.prototype.slice.call(arguments); //turn arguments into array
  console.log.pass(args);
 }
}

Кажется, что использование $defined должно устранить эту ошибку, поэтому у кого-нибудь есть идеи относительно того, в чем может быть проблема?

Я использую mootools v1.2.3.

РЕДАКТИРОВАТЬ: я пробовал следующее, и они также дают им ту же ошибку:

if (DEBUG && $type(console) == "object" && $type(console.log) == 'function') {

if (DEBUG && $chk(console) && $type(console.log) == 'function') {

1 Ответ

5 голосов
/ 27 октября 2009

Попробуйте $defined(window.console) вместо. Если Firefox проходит по цепочке областей действия и не может найти переменную, он выдаст ошибку, но если вы явно указали контекст, в котором вы ищете переменную, он даст вам undefined.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...