console.log использует оповещения в ie9 с открытыми инструментами разработчика - PullRequest
3 голосов
/ 02 февраля 2012

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

Однако у меня открыты инструменты разработчика, и console.log по-прежнему дает предупреждения.Чего мне не хватает?


  • Режим браузера: режим IE9 Compat
  • Режим документа: стандарты IE8

Ответы [ 3 ]

1 голос
/ 28 апреля 2012

Я бы посмотрел, переопределяется ли console.log где-нибудь в вашем JS.

0 голосов
/ 30 апреля 2012

Возможно, что console.log был переписан каким-либо скриптом на странице.Я бы проверил, появилось ли это alert поведение на всех сайтах или только на том, который вы сейчас тестируете.(Если это происходит везде, возможно, console.log переписывается надстройкой браузера.)

Попробуйте вместо этого использовать console.warn (или даже console.error, в крайнем случае) - возможно, это будетпо-прежнему вести себя, как ожидалось.Это хорошая проверка работоспособности, и она все равно может получить отладочную информацию, если вы никогда не заработаете console.log.

0 голосов
/ 30 апреля 2012

console.log() не будет alert() ничего ... Я думаю, что вы используете некоторую пользовательскую функцию console.log в своем коде. Однако я всегда советую использовать те крошечные функции, которые поставляются с html5boilerplate:

// usage: log('inside coolFunc', this, arguments);
// paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
window.log = function f(){ log.history = log.history || []; log.history.push(arguments); if(this.console) { var args = arguments, newarr; args.callee = args.callee.caller; newarr = [].slice.call(args); if (typeof console.log === 'object') log.apply.call(console.log, console, newarr); else console.log.apply(console, newarr);}};

// make it safe to use console.log always
(function(a){function b(){}for(var c="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(","),d;!!(d=c.pop());){a[d]=a[d]||b;}})
(function(){try{console.log();return window.console;}catch(a){return (window.console={});}}());

Включите их, используйте их, и у вас не будет ошибок, вызванных выводом отладки в IE.

...