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

JavaScript script работает только в Internet Explorer, когда отображается панель инструментов разработчика Internet Explorer

Я получил script, работающий над Firefox 5, но не с Internet Explorer 9. Когда я просто открываю панель инструментов разработчика Internet Explorer и пробую те же действия, что и раньше, - он работает. На странице работает другой код JavaScript, поэтому это просто часть, которая не является.

Есть ли что-то вроде панели инструментов разработчика, изменяющей любые параметры Internet Explorer во время работы?

4b9b3361

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

Это просто решило ту же проблему для меня.