2010-01-06 15 views
11

Ho un jsp con un sacco di codice javascript. Ogni volta che c'è un errore javascript sulla pagina, mostrato nella barra di stato del browser IE, il numero di riga segnalato per contenere l'errore, non corrisponde al numero di riga che contiene effettivamente l'errore. Sto facendo un clic destro> vedi sorgente per trovare il numero di linea riportato. Ma quella linea non contiene l'errore. L'errore, presumo, è in qualche altra linea. Quale potrebbe essere il motivo per cui vengono segnalati i numeri di riga errati.Numeri di riga di errore Javascript

Si prega di aiuto.

+0

Posso solo utilizzare IE per testare la mia applicazione. Quindi firebug non sarà di grande aiuto. Inoltre, ho usato per ottenere i numeri di linea corretta dire circa un mese fa. Non so come tutto ad un tratto c'è questa discrepanza frustrante. –

+1

Oltre agli ottimi suggerimenti sull'utilizzo dello strumento di sviluppo IE in IE> 8, puoi anche ottenere [Firebug Lite] (http://getfirebug.com/firebuglite), che funziona con qualsiasi browser, quindi Firebug può effettivamente essere di help :) – Kato

risposta

4

Ho trovato il problema dopo un sacco di prove. Spero che questo sarà utile ad alcuni ragazzi che affrontano questo problema frustrante.

RightClick> Visualizza origine è il codice che il browser vede per il rendering della pagina. Tuttavia, non è tutto. La pagina potrebbe anche avere altre richieste HTTP per css ans js files. Era quello che stava accadendo nel mio caso. L'errore era in un file importato (NON INCLUSO, se fosse stato incluso nell'errore). E il numero di linea riportato era relativo a quel file js.

In retrospettiva, tuttavia, ritengo che questo sia corretto, poiché i file importati sono memorizzati separatamente nella cache del browser, in quanto sono richieste HTTP indipendenti al server web. E quindi non dovrebbe apparire in RightClick> Visualizza codice sorgente.

potenziale problema: Tuttavia, anche se nel mio caso il numero di riga nel file js individuale, ha riferito, è stato trovato per essere corretta, che non può essere sempre vero. Nella maggior parte delle applicazioni aziendali, js e css sono spesso ridotti per ridurre l'ingombro dei byte. Quindi il file js che potresti guardare, nel tuo IDE, non sarà lo stesso di quello che vede il browser. Quindi i numeri di riga potrebbero quindi essere diversi. I numeri di riga saranno w.r.t la versione compressa del file che il browser vede.

IE JAVASCRIPT Debugging: Ho trovato questa pagina, che promette di offrire all'ambiente debugger (anche se, non sofisticato) nell'ambiente IE.

http://jonathanboutelle.com/2006/01/16/how-to-debug-javascript-in-internet-explorer/ Non l'ho provato, poiché non ho installato il pacchetto Office completo.

0

Se si desidera ottenere la ragione esatta e la posizione dell'errore e se si desidera eseguire un debug di javascript completo, ti consigliamo di utilizzare FireBug.

+7

Questo a volte non è possibile poiché diversi errori compaiono spesso in IE rispetto a FF (specialmente quelli non correlati alla sintassi). –

3

Internet Explorer è terribile nel riportare i numeri di linea Javascript: in genere il numero di riga riportato è il punto in cui il tag JavaScript <script> è stato avviato nel file HTML, anziché il numero della riga di posizione nel file Javascript. Affidati solo a "Segnalazione errori", il numero di linea non vale nulla con IE.

Utilizzare un altro browser, ad esempio Firefox con l'estensione Firebug installata, o Google Chrome che ha il suo Web Inspector, che è anche ottimo.

1

Ecco un bell'articolo

Debugging JavaScript: Understanding JavaScript Error Messages

Il numero di riga, in particolare, si trasforma rivela essere molto meno utile di quanto si potrebbe aspettare . I browser differiscono nella loro determinazione del numero di riga e pertanto non riportano in modo affidabile il numero di riga corretto che si è verificato un errore in relazione al codice sorgente . Internet Explorer, ad esempio, riporta il numero di riga in relazione a del rendering interno del browser dell'origine del documento, che potrebbe o potrebbe non corrispondere al file di origine! Firefox segnala la posizione dell'errore più in modo affidabile, segnalando il file di script che si è verificato un errore in cui è applicabile . Tuttavia, Firefox non fornirà i dettagli sull'elemento che ha causato l'errore, noto come come "chiamante". Queste informazioni, , che possono essere utili per tracciare rapidamente la causa di un errore, sono attualmente fornite solo da Internet Explorer.

7

Come indicato in altre risposte, IE non funziona correttamente nella segnalazione di numeri di riga per errori. Tuttavia, lo built-in debugger (premi F12) in IE8 e versioni successive è molto più utile, quindi ti suggerisco di provarlo.

+0

Sono d'accordo. "Strumenti -> Strumenti di sviluppo" è ciò che vuoi invece di "Visualizza sorgente" Inoltre, se si modificano le opzioni Internet per interrompere/richiedere gli errori di javascript, di solito viene visualizzato un "vuoi eseguire il debug?" pulsante che ti porta direttamente agli strumenti di sviluppo – Graza

Problemi correlati