Domanda

Come si può eseguire il debug JavaScript con IE 8?

Il debug JavaScript con Visual Studio non funziona dopo un aggiornamento di IE 8.

È stato utile?

Soluzione

ho scoperto oggi che ora possiamo eseguire il debug JavaScript con il plug-in della barra degli strumenti di sviluppo integrato in IE 8.

  • Fare clic su ▼ Strumenti sulla barra degli strumenti, alla destra delle schede.
  • Seleziona Strumenti di sviluppo . Il dialogo Strumenti di sviluppo dovrebbe aprire.
  • Fai clic sul Script nel dialogo.
  • Fai clic sul Avvia debug .

È possibile utilizzare l'orologio, punto di interruzione, vedere la chiamata di stack, ecc, in modo simile al debugger nei browser professionali.

È inoltre possibile utilizzare la debugger; istruzione nel codice JavaScript il set di un punto di interruzione.

Altri suggerimenti

È possibile ottenere ulteriori informazioni su IE8 Developer Toolbar debug a debug JScript o debug degli script con il Developer Tools .

Questo non vi aiuterà a passo attraverso codice o rompere in caso di errori, ma è un modo utile per ottenere la stessa console di debug per il progetto su tutti i browser.

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' });

Questa è mettere insieme abbastanza in fretta ed è un po 'sciatta, ma è utile comunque e può essere migliorata facilmente!

Speravo di aggiungere questo come un commento alla risposta di Marcus Westin, ma non riesco a trovare un link -? Forse ho bisogno di più la reputazione


In ogni caso, grazie, ho trovato questo frammento di codice utile per un rapido debug in IE. Ho fatto alcune modifiche rapide per risolvere un problema che si è fermato a lavorare per me, anche per scorrere verso il basso in modo automatico e utilizza il posizionamento fisso in modo che apparirà nella finestra. Ecco la mia versione nel caso qualcuno ritiene utile:

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;

}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top