2011-12-13 15 views
6

Sto caricando l'html con un javascript in linea su un callback $ .post. Qualcosa di "genere" :-)Perché non riesco a vedere/eseguire il debug di javascript caricato con jquery.html() con Chrome

callback{ 
response_data = '<p>string with html and </p><script "javascript">var scripts...</script>' 
jQuery('#selector').html(response_data); 
} 

Ma quando lo faccio, non riesco a vedere il nuovo JavaScript linea caricato su script di Chrome Tab. Vedo che JS sulla scheda Rete e js è in esecuzione ma non riesco a eseguire il debug di questo codice.

Qualche idea su come eseguire il debug di questo codice? Grazie!

+0

dare un'occhiata a 'tab' Console, fare clic destro e selezionare controllo XMLHTTPRequest – cristian

+0

Perché suppongo browser non ascoltare le chiamate asincrone per aggiornare l'elenco dei file disponibili – Pawan

risposta

8

Tutti i moderni motori JS consentono di generare un break-point javascript "in-code".

Per fare ciò, è necessario eseguire l'istruzione debugger; da qualche parte nel codice. Non appena il motore js legge questo comando, viene impostato un punto di interruzione e viene caricato il debugger.

Si potrebbe desiderare di dare uno scatto. Potrebbe non funzionare ancora correttamente poiché l'inserimento di script dinamici può ancora essere un problema e un dolore, a seconda di come e quando lo si fa.

Sarebbe sicuramente una migliore idea di farlo più "preciso", attraverso la creazione e l'inserimento di una nuova script element

var myscript = document.createElement('script'); 
myscript.textContent = 'var scripts = 42; alert("hello");'; 
myscript.type = 'text/javascript'; 

document.body.appendChild(myscript); 
+4

+1 per l'istruzione 'debugger;' –

+0

Il debugger; è una buona possibilità. Ad ogni modo sposto tutto il JS in file .js per risolverlo :) – rubdottocom

+0

Ho appena salvato la mia vita. Niente di più... – DontVoteMeDown

Problemi correlati