JavaScript script работает только в Internet Explorer, когда отображается панель инструментов разработчика Internet Explorer
Я получил script, работающий над Firefox 5, но не с Internet Explorer 9.
Когда я просто открываю панель инструментов разработчика Internet Explorer и пробую те же действия, что и раньше, - он работает. На странице работает другой код JavaScript, поэтому это просто часть, которая не является.
Есть ли что-то вроде панели инструментов разработчика, изменяющей любые параметры Internet Explorer во время работы?
Ответы
Ответ 1
Без вашего цитирования какого-либо кода нужно угадать.
Я предполагаю, что вы используете console.log
(или один из других методов console
) в своем коде. В IE8 и IE9 объект console
не существует до тех пор, пока инструменты разработчика не будут открыты. Странно, но верно.
Вы должны получать ошибки script в строках "console
is undefined", если у вас нет открытых инструментов dev.
Из-за этого и потому, что console
не существует в каждом браузере (конечно, не IE6 или IE7, которые все еще объединены составляют около 18% от общего пользователя браузера), лучше не включать их в производственный код или проверить проактивно, что console
существует до его использования.
Ответ 2
Доступен ли ваш script к любым методам, доступным только при открытой панели инструментов разработчика, например console.log
? Например, при запуске console.log
, когда console
есть undefined, потому что панель инструментов разработчика не открыта, это вызовет исключение.
Ответ 3
Как упоминалось в аналогичном вопросе, используйте этот код (желательно в теге script в верхней части страницы перед другими тегами script):
(function() {
var method;
var noop = function () {};
var methods = [
'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
'timeStamp', 'trace', 'warn'
];
var length = methods.length;
var console = (window.console = window.console || {});
while (length--) {
method = methods[length];
// Only stub undefined methods.
if (!console[method]) {
console[method] = noop;
}
}
}());
или найти более актуальную версию этого же кода здесь:
https://github.com/h5bp/html5-boilerplate/blob/master/src/js/plugins.js
Это просто решило ту же проблему для меня.