Ho un sito Web molto complesso e so che da qualche parte è un alert()
con una descrizione. C'è un modo per impostare un punto di interruzione sulla chiamata alert()
? L'HTML è generato, quindi non posso semplicemente grep per il messaggio.Come impostare il punto di interruzione in Firebug in alert()?
risposta
È possibile utilizzare la console per sostituire la funzione alert
:
window.alert = function() { debugger; };
Script pannello di Firebug permette di cercare il codice in tutte le tue fonti JavaScript.
Così si può semplicemente cercare alert(
o cercare il messaggio che gli spettacoli casella di avviso e impostare un punto di interruzione sulla linea in cui si chiama.
Un altro modo è utilizzare Break On Next button () per interrompere la successiva istruzione JavaScript che viene eseguita. Quindi, fare clic sul pulsante e quindi eseguire l'azione che provoca lo spostamento della casella di avviso.
Nota: questo funziona solo se non ci sono altri gestori di eventi chiamati prima dell'evento che mostra la casella di avviso.
E se ci sono centinaia di tali posti, in codice offuscato/minificato? – spraff
Se il codice è offuscato e minimizzato, è possibile almeno sbloccarlo tramite il pulsante * {} * e cercare il testo all'interno di 'alert()'. Inoltre puoi provare il trucco di @SLaks. Tuttavia, se non si dispone delle fonti per il codice minificato, si tratta in genere di codice di terze parti, per il quale è necessario presentare una segnalazione di errore per il proprio manutentore anziché tentare di eseguire il debug manualmente. –
Oppure potrebbe essere un codice legacy. O, ci mancherebbe, potrebbe essere eval(), attraverso la concatenazione di stringhe, o qualsiasi altra cosa. Hai perso il punto. Il punto è l'aggancio nelle funzioni di libreria è una funzione di debug ampiamente utile, dovrebbe essere facile. Scavare attraverso quantità arbitrarie di codice non familiare non è facile. – spraff
Sei una leggenda. Grazie! – Rel
intelligente! Ben fatto. –