2012-10-30 12 views
22

Quando carico dinamicamente un snippet di html contenente javascript tramite AJAX, non riesco a vedere quel contenuto nella scheda di origine nella finestra degli strumenti di sviluppo in Chrome 22.0.1229.94. Significativamente, sono andato quiImpossibile vedere il codice caricato dinamicamente in Strumenti per sviluppatori di Chrome 22

https://developers.google.com/chrome-developer-tools/docs/scripts-breakpoints#js_dynamic

Questa pagina mostra una finestra di esempio gli strumenti di sviluppo, che non è aggiornato. C'è un pulsante nella pagina per caricare uno script dinamico e non compare nella scheda sorgente quando lo fai.

Come un work-around, ho trovato che l'aggiunta di

debugger; 

allo script e ricaricando causerà per mettere in pausa nel codice caricato in modo dinamico, ma purtroppo, tutti i numeri di riga sono in grigio e non è possibile impostare alcun punto di interruzione all'interno del debugger.

Mi manca qualcosa qui o cosa?

Grazie, Rob

+0

Possibile duplicato di [È possibile eseguire il debug del caricamento dinamico di JavaScript da parte di alcuni debugger come WebKit, FireBug o IE8 Developer Tool?] (Http://stackoverflow.com/questions/1705952/is-possible-to-debug-dynamic- caricamento-javascript-by-some-debugger-like-webkit-fi) – JerryGoyal

risposta

5

È possibile utilizzare // @ SourceURL. Chrome sembra non supportare // @ sourceURL per gli script inline. Tuttavia, funziona sulle espressioni eval. This article fornisce ulteriori dettagli sulla denominazione di blocchi eval e sulla denominazione di eventuali funzioni anonime nel codice.

Invece di utilizzare eval, è possibile provare a incorporare un tag script o JSONP potrebbe essere.

Varunkumar Nagarajan

23

Quando si utilizza una libreria o codice javascript di aver caricato in modo dinamico, è possibile utilizzare la frase

//@ sourceURL=foo.js 

all'inizio del codice javascript che foo.js è il nome che verrà assegnato. debugger lo mostrerà con quel nome. Questo è vero in chrome, e penso anche a Firebug. In questo caso è possibile inserire un punto di interruzione nel codice javascript caricato dinamicamente.

+0

Sfortunatamente mi imbatto nello stesso problema. Comunque sto caricando questi file da Yahoo CDN (sono delle dipendenze dei moduli). In Firefox (23.0.1) in Firebug (1.12.0) questi file sono visibili nella scheda Script. In Chrome (29.0.1547.62 m) sono accessibili solo nella scheda Risorse e Rete. Ho bisogno di impostare i punti di interruzione lì e non posso ... – op1ekun

+0

Propongo di caricarlo utilizzando una libreria che è implementata per questo scopo. per esempio usando require.js. Oppure puoi caricarli con un metodo come quello che è stato usato in require.js. –

+0

YUI (che sto usando) ha il proprio modo di caricare i moduli. È simile a require.js. Alla fine si finisce con il tag ha funzionato! –

Problemi correlati