Как отлаживать Javascript в IE 8

Как мы можем отлаживать JavaScript с помощью IE 8?

Отладка JavaScript с помощью Visual Studio не работает после обновления до IE 8.


person Cédric Boivin    schedule 20.08.2009    source источник
comment
Спасибо за помощь, хотя в идеале это был бы ответ на один из вопросов, которые вы упомянули в сообщении. «Задайте вопрос» в Stackoverflow только для того, чтобы задавать вопросы!   -  person James Wiseman    schedule 20.08.2009
comment
Здорово, что ты хочешь помочь. Но вы делаете это так, чтобы задать вопрос, а затем опубликовать его как ответ на заданный вами вопрос.   -  person Joel Coehoorn    schedule 20.08.2009
comment
Так лучше?   -  person Cédric Boivin    schedule 20.08.2009


Ответы (4)


Сегодня я обнаружил, что теперь мы можем отлаживать Javascript с помощью плагинов панели инструментов разработчика, интегрированных в IE 8.

  • Нажмите ▼ Инструменты на панели инструментов справа от вкладок.
  • Выберите Инструменты разработчика. Должно открыться диалоговое окно "Инструменты разработчика".
  • В диалоговом окне перейдите на вкладку Сценарий.
  • Нажмите кнопку Начать отладку.

Вы можете использовать часы, точку останова, просматривать стек вызовов и т. Д., Аналогично отладчикам в профессиональных браузерах.

Вы также можете использовать оператор debugger; в своем коде JavaScript для установки точки останова.

person Cédric Boivin    schedule 20.08.2009
comment
Вы можете устанавливать точки останова без отладчика; утверждение. IE8 довольно хорош для отладки JS, ОСОБЕННО, поскольку вы можете визуализировать и анализировать, как IE7, с помощью инструментов IE8. - person Stefan Kendall; 20.08.2009
comment
@Reinis I. Ты поставил; после вашего отладчика; ?? - person Cédric Boivin; 11.11.2011
comment
Я почти собирался проклясть IE, а потом прочитал ваш ответ. Спасибо! - person Vaibhav Desai; 29.03.2013
comment
@VaibhavDesai Я все еще ругаю IE 8. Возможности отладки настолько плохи. - person async; 30.06.2014
comment
Зачем кому-то проклинать IE? Кроме того, что он все еще не поддерживает тег ‹sarcasm›? - person Michael Scheper; 21.11.2015

Дополнительную информацию об отладке панели инструментов разработчика IE8 можно найти на странице Отладка JScript или Сценарий отладки с помощью инструментов разработчика.

person Lil'Monkey    schedule 20.08.2009

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

myLog = function() {
    if (!myLog._div) { myLog.createDiv(); }

    var logEntry = document.createElement('span');
    for (var i=0; i < arguments.length; i++) {
        logEntry.innerHTML += myLog.toJson(arguments[i]) + '<br />';
    }
    logEntry.innerHTML += '<br />';

    myLog._div.appendChild(logEntry);
}
myLog.createDiv = function() {
    myLog._div = document.body.appendChild(document.createElement('div'));
    var props = {
        position:'absolute', top:'10px', right:'10px', background:'#333', border:'5px solid #333', 
        color: 'white', width: '400px', height: '300px', overflow: 'auto', fontFamily: 'courier new',
        fontSize: '11px', whiteSpace: 'nowrap'
    }
    for (var key in props) { myLog._div.style[key] = props[key]; }
}
myLog.toJSON = function(obj) {
    if (typeof window.uneval == 'function') { return uneval(obj); }
    if (typeof obj == 'object') {
        if (!obj) { return 'null'; }
        var list = [];
        if (obj instanceof Array) {
            for (var i=0;i < obj.length;i++) { list.push(this.toJson(obj[i])); }
            return '[' + list.join(',') + ']';
        } else {
            for (var prop in obj) { list.push('"' + prop + '":' + this.toJson(obj[prop])); }
            return '{' + list.join(',') + '}';
        }
    } else if (typeof obj == 'string') {
        return '"' + obj.replace(/(["'])/g, '\\$1') + '"';
    } else {
        return new String(obj);
    }
}

myLog('log statement');
myLog('logging an object', { name: 'Marcus', likes: 'js' });

Это сделано довольно поспешно и немного небрежно, но, тем не менее, полезно и может быть легко улучшено!

person Marcus Westin    schedule 20.08.2009

Я надеялся добавить это в качестве комментария к ответу Маркуса Вестина, но не могу найти ссылку - может мне нужно больше репутации?


В любом случае, спасибо, я нашел этот фрагмент кода полезным для быстрой отладки в IE. Я сделал несколько быстрых настроек, чтобы исправить проблему, из-за которой он у меня перестал работать, а также для автоматической прокрутки вниз и использования фиксированного позиционирования, чтобы оно отображалось в области просмотра. Вот моя версия на тот случай, если кто-то сочтет ее полезной:

myLog = function() {

    var _div = null;

    this.toJson = function(obj) {

        if (typeof window.uneval == 'function') { return uneval(obj); }
        if (typeof obj == 'object') {
            if (!obj) { return 'null'; }
            var list = [];
            if (obj instanceof Array) {
                    for (var i=0;i < obj.length;i++) { list.push(this.toJson(obj[i])); }
                    return '[' + list.join(',') + ']';
            } else {
                    for (var prop in obj) { list.push('"' + prop + '":' + this.toJson(obj[prop])); }
                    return '{' + list.join(',') + '}';
            }
        } else if (typeof obj == 'string') {
            return '"' + obj.replace(/(["'])/g, '\\$1') + '"';
        } else {
            return new String(obj);
        }

    };

    this.createDiv = function() {

        myLog._div = document.body.appendChild(document.createElement('div'));

        var props = {
            position:'fixed', top:'10px', right:'10px', background:'#333', border:'5px solid #333', 
            color: 'white', width: '400px', height: '300px', overflow: 'auto', fontFamily: 'courier new',
            fontSize: '11px', whiteSpace: 'nowrap'
        }

        for (var key in props) { myLog._div.style[key] = props[key]; }

    };


    if (!myLog._div) { this.createDiv(); }

    var logEntry = document.createElement('span');

    for (var i=0; i < arguments.length; i++) {
        logEntry.innerHTML += this.toJson(arguments[i]) + '<br />';
    }

    logEntry.innerHTML += '<br />';

    myLog._div.appendChild(logEntry);

    // Scroll automatically to the bottom
    myLog._div.scrollTop = myLog._div.scrollHeight;

}
person poshaughnessy    schedule 27.09.2010
comment
Я не понимаю. Как я могу использовать это в IE8 для отладки javascript, пожалуйста? Запустить javascript для отладки javascript? - person Fandango68; 07.07.2016
comment
@ Fernando68 Это JavaScript для добавления консоли отладки, которую вы видите на странице, которая будет отображать то, что вы регистрируете с помощью myLog('i want to see this', fooObject);. Я думаю, вам это не нужно с IE8, потому что, пока у вас открыты инструменты разработчика, вы можете использовать console.log, пошаговую отладку и т. Д. Но если вам нужно отлаживать даже старые браузеры, возможно, это может помощь. К счастью, мне самому давно не приходилось этим пользоваться! - person poshaughnessy; 08.07.2016