Debug di JavaScript in IE7


160

Devo eseguire il debug di JavaScript in Internet Explorer 7.

Sfortunatamente, il suo debugger predefinito non mi fornisce molte informazioni. Mi dice la pagina in cui è apparso l'errore (non lo script specifico) e mi dà un numero di riga. Non so se ciò sia legato al mio problema.

Sarebbe bello se potesse restringere l'errore a un numero di riga su uno script specifico (come Firebug può).

Esiste un componente aggiuntivo per il debug di JavaScript in IE7 come Firebug fa in Firefox?

Grazie!

Guarda anche:

IE7 ha una "modalità sviluppatore" o un plug-in come Firefox / Chrome / Safari?

Risposte:


90

Helper di sviluppo Web è molto buono.

L' IE Dev Toolbar è spesso utile, ma purtroppo non fare il debug di script


4
Vale la pena notare, forse, che è necessario disattivare "disabilita il debug" nelle opzioni avanzate.
Dan Rosenstark,

24
Non vedo alcuna opzione di debug degli script in IE Dev Toolbar e l'ultima versione di Web Development Helper non funziona, anche dopo aver modificato le mie preferenze avanzate e riavviato IE7.
stevebot,

9
Il link Helper per lo sviluppo Web indicato sopra è defunto. Qualcuno può confermare che questo è lo stesso strumento ospitato qui? softpedia.com/get/Tweak/Browser-Tweak/…
RMorrisey,

3
Oh l'ironia; Il link per il download di softpedia per Web Dev Helper muore in IE7! (Il temuto errore "Operazione interrotta".)
Sean McMillan,

1
Penso che il collegamento porti a malware.
albero

41

La dura verità è: l'unico buon debugger per IE è Visual Studio.

Se non hai soldi per il vero affare, scarica gratuitamente Visual Web Developer 2008 Express Edition Visual Web Developer 2010 Express Edition . Mentre il primo ti consente di collegare il debugger a IE già in esecuzione, il secondo no (almeno le versioni precedenti che ho usato non lo consentivano). Se questo è ancora il caso, il trucco è creare un semplice progetto con una pagina Web vuota, "eseguirlo" (avvia il browser), ora passare alla pagina che si desidera eseguire il debug e iniziare il debug.

Microsoft offre Visual Studio completo su diversi eventi, in genere con restrizioni di licenza, ma consente di armeggiare a casa. Controlla il loro programma e l'elenco di omaggi.

Un altro suggerimento: prova prima a eseguire il debug dell'applicazione web con altri browser. Ho avuto un grande successo con Opera. In qualche modo l'emulazione di Opera di IE e dei suoi bug era abbastanza vicina, ma il debugger è molto meglio.


2
per istruzioni dettagliate, consultare la risposta di @ mitjak
rymo

4
VS non è l'unico buon debugger per IE, anche se sono d'accordo che non ce ne sono molti di buoni. Questo è l'unico debugger javascript specifico di IE che uso da anni, anche se non è gratuito: javascript-debugger.com

Il collegamento a VS 2008 è sparito. Ora passa a una pagina per VS 2012.
Sean McMillan,

C'è VS 2012 Express Edition, che è ancora gratuito (il vecchio link in realtà punta ad esso).
Eugene Lazutkin,

1
VS2012 Express richiede Windows 7. Se stai cercando di eseguire il debug di IE7, non è utile. Ciò di cui hai bisogno è VS2010 Web Express: microsoft.com/web/gallery/…
Mike Post

32

potresti voler provare il debugger di script Microsoft è piuttosto vecchio ma è abbastanza utile nel senso che se inciampi in un errore javascript, il debugger si aprirà per mostrarti quale linea sta rovinando. a volte può essere irritante quando si pratica la normale navigazione, ma è possibile disattivarlo.

ecco una buona partenza su come utilizzare anche questo strumento. PROCEDURA: eseguire il debug di JavaScript in Internet Explorer


Il link howto è interrotto. Ecco un link aggiornato: jonathanboutelle.com/2006/01/16/…
Dana

Grande percorso di debug a basso attrito, senza dover installare software di terze parti.
Jon Hadley,

27

Ho trovato DebugBar .

Non buono come Firebug, ma vicino.


3
comunque, molto meglio di ie dev toolbar
Sam Saffron,

2
Non so perché questa non sia la risposta accettata. Di gran lunga migliore di qualsiasi altro debugger per IE.
Tres

1
In realtà ho trovato il " Companion JS " gratuito menzionato sul loro sito per funzionare al meglio. Ti dice esattamente su quale file JS e numero di riga si verifica l'errore.
Tyler,

25

In IE7, puoi visualizzare firebug lite per la pagina corrente incollando quanto segue nella barra degli indirizzi:

javascript:var firebug=document.createElement('script');firebug.setAttribute('src','http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js');document.body.appendChild(firebug);(function(){if(window.firebug.version){firebug.init();}else{setTimeout(arguments.callee);}})();void(firebug);

Vedi http://getfirebug.com/lite.html .


6
Firebug Lite non fa Javascript
Casebash

Mi sono fermato a FireBug Lite con la sua console per il debug
Eugene Gluhotorenko

Ha una console che esegue JavaScript, che è quello che stavo cercando.
Alex W,

Davvero utile per ispezionare elementi su Internet Explorer 7. Grazie! :)
Leniel Maccaferri,

7

Microsoft Script Editor è davvero un'opzione e di quelli che ho provato uno dei più stabili: il debugger in IE8 è eccezionale ma per qualche motivo ogni volta che avvio gli Strumenti di sviluppo ci vuole IE8 un po ', a volte fino a un minuto, per ispezionare l'albero DOM della mia pagina. E dopo sembra voler farlo ad ogni aggiornamento di pagina che è una tortura.

È possibile esaminare il contenuto delle variabili in Microsoft Script Editor: se si frugare sotto Test> finestra è possibile attivare l'ispezione variabile locale, guardando etc.

L'altra opzione, Visual Web Dev, sebbene ingombrante, funziona abbastanza bene. Per configurarlo, fai questo (rubato da qui ):

  1. Il debug dovrebbe essere attivato in IE. Vai su Strumenti> Opzioni Internet> Avanzate e controlla che Disabilita debug degli script (Internet Explorer) sia deselezionato e Visualizza una notifica su ogni errore di script selezionato
  2. Crea un nuovo progetto Web vuoto all'interno di VWD
  3. Fai clic con il pulsante destro del mouse sul sito in Esplora soluzioni in alto a destra, vai a Sfoglia con e assicurati che il tuo browser predefinito sia impostato su IE (è ragionevole supporre che se sei uno sviluppatore web IE non è il tuo browser predefinito nel qual caso quello non sarà il default .. di default)
  4. Premi F5, IE si aprirà. Passare alla pagina che si desidera eseguire il debug.
  5. VWD ora si aprirà ogni volta che si verifica un errore di script o se si imposta un punto di interruzione in uno dei file JS. Debug via!

AGGIORNAMENTO : A proposito, se si verificano gli stessi rallentamenti con me con il debugger altrimenti decente di IE8, c'è una soluzione alternativa: se si incontra o si verifica un errore di IE in modo che venga visualizzato il dialogo "Vuoi eseguire il debug" e premi Sì, il debugger apparirà all'istante. Sembra che se si passa direttamente alla modalità di debug, Dev Tools non controlla mai il DOM. È solo quando premi F12 che lo fa.


Dovrei testarlo ancora un po 'ma finora sembra che il debugger IE8 funzioni più velocemente quando navighi in modalità compatibilità. Vai a capire!
dmkc,

1
Se stai utilizzando la versione Express (gratuita) di VWD, assicurati di aver chiuso TUTTE le finestre di IE prima del passaggio 4: VWD deve essere quello che avvia IE in modo che sia "proprietario".
Rymo,

3

IE8 ha migliorato notevolmente gli strumenti di sviluppo. Fino ad allora è meglio scrivere prima javascript per firefox e poi eseguire il debug di IE usando le istruzioni alert ().


Non vedo l'ora di IE8 (purché all'altezza dell'hype - Devo ancora scaricare la beta)
alex

Ora che è fuori ho ascoltato, e devo dire che mi piace il debugger anche meglio di quello di firebug :)
Joel Coehoorn

@Joel, anche se il debugger è eccezionale - una cosa che mi infastidisce (che Firebug ha) è un menu contestuale del tasto destro in cui puoi scegliere "ispeziona elemento". Per quanto ne so, in IE8 devi avviare gli strumenti di sviluppo, quindi fare clic sulla freccia, quindi trovare l'elemento che si desidera ispezionare.
alex,

3

Microsoft Script Editor può essere utilizzato per eseguire il debug di Javascript in IE. È meno difettoso di Microsoft Script Debugger ma ha le stesse funzionalità di base, che purtroppo è praticamente limitato al passaggio attraverso l'esecuzione. Non riesco a controllare le variabili o qualsiasi altra cosa utile come quella. Inoltre, è stato spedito solo con Office XP / 2003 per qualche bizzarro motivo. Maggiori informazioni qui se stai giocando.

Ho scaricato Visual Express Developer 2008 Express Edition menzionato da Eugene Lazutkin ma non ho ancora avuto modo di provarlo. Consiglio di provarlo prima di Script Editor / Debugger.


3

Non è un debugger completo, ma le mie estensioni DP_DEBUG forniscono alcune funzionalità (penso) utili e funzionano in IE, Firefox e Opera (9+).

È possibile "scaricare" rappresentazioni visive di oggetti JavaScript complessi (anche oggetti di sistema), eseguire registrazioni e tempistiche semplificate. Il componente fornisce metodi semplici per abilitarlo o disabilitarlo in modo da poter lasciare il debugger in posizione per il lavoro di produzione, se lo si desidera.

DP_Debug


2

Gli strumenti per sviluppatori IE9 hanno funzionato per me. Basta impostare la voce di menu "Modalità browser" su IE7.


7
Questo è utile, ma IE7 emulato non è lo stesso.
alex,

Immagino che dipenda. Se riesco a riprodurre un problema nella modalità emulata di IE9, lo risolverò lì. Altrimenti, Firebug Lite è una buona soluzione, anche se dovrai installare IE7 da qualche parte.
Peter Tseng

1

Ehi, ho riscontrato lo stesso problema e ho trovato questa applicazione IETESTER . È davvero fantastico, è un'app con IE 5.5,6 e 7 in bundle. Non importa quale versione di IE hai attualmente. Ciò consente di avere più versioni fianco a fianco.

Se abiliti il ​​debug javascript nelle opzioni IE e hai installato Visual Studio puoi anche eseguire il debug del javascript in VS con tutte le opzioni di debug disponibili (orologi, breakpoint condizionali, ecc.)

Se vuoi iniziare il debug prima che si verifichi un errore devi semplicemente mettere la linea

debugger;

nel tuo codice JS e questo ti porta in VS per iniziare il debug dopo questa affermazione.

Questo è assolutamente sorprendente per me per testare la compatibilità con le versioni precedenti per il codice JS.


0

Usa Internet Explorer 8. Quindi prova lo strumento per sviluppatori. Puoi eseguire il debug in base a IE 7 anche in modalità compatibilità


17
IE7! = Modalità compatibilità IE8. Ci sono incompatibilità.
thorn̈

1
+1 Almeno IE8 ti dice il nome del file dello script che causa l'errore.
Colonnello Sponsz,

@thorn, ma esiste una modalità IE7. (Forse prima non c'era?) Quindi: normale, modalità compatibilità, modalità IE7.
ANeves,

1
@ANeves sono solo nomi diversi per la stessa cosa
thorn̈

4
@ANeves Sembra che la "modalità IE7" sia solo la "modalità di compatibilità" con un agente utente modificato in quello utilizzato da IE7. Ma voglio sottolineare ancora una volta che la modalità di compatibilità non è così compatibile. Ad esempio, resettare una proprietà di stile tramite jQuery si presenta così in IE7 (e altri browser): $my.css('z-index', null). In IE8, questo codice genera un errore, anche nella cosiddetta modalità di compatibilità. Quindi ho dovuto scrivere un codice come questo:$my.css('z-index', ie8 ? 'auto' : null)
thorn̈


0

La risposta è semplice

  1. Ottieni Internet Explorer 9
  2. Premi F12 per caricare gli Strumenti per gli sviluppatori
  3. Passa alla modalità browser su IE7

commutazione della modalità browser su IE9


6
Perché è inaffidabile :( Tutti i ticket aperti nel mio attuale progetto connesso a IE7 non sono riproducibili in Vista di Windows 7
AlfeG

4
Potrebbe essere utile, se l'errore è riproducibile. Ma ci sono alcuni errori, che non si verificano in IE9 con modalità IE7, ma in IE7 originale (lo stesso per IE8)
yunzen

0

L'esecuzione del codice tramite uno strumento di analisi statica Javascript come JSLint può rilevare alcuni errori IE7 comuni, come le virgole finali nelle definizioni degli oggetti.


0

Gli strumenti per sviluppatori IE8 sono in grado di passare alla modalità IE7inserisci qui la descrizione dell'immagine


0

Se è ancora necessario eseguire il debug di IE 7, la modalità di emulazione di IE 11 funziona piuttosto bene.

Vai al menu: Strumenti Dev, quindi all'emulazione e impostala. Fornisce inoltre informazioni sulla riga di errore.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.