2014-10-21 11 views

risposta

20

È possibile utilizzare la console per sostituire la funzione alert:

window.alert = function() { debugger; }; 
+0

Sei una leggenda. Grazie! – Rel

+0

intelligente! Ben fatto. –

1

Script pannello di Firebug permette di cercare il codice in tutte le tue fonti JavaScript.

Firebug *Script* panel search for <code>alert(</code>

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 (*Break On Next* button in Firebug's *Script* panel) 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.

+0

E se ci sono centinaia di tali posti, in codice offuscato/minificato? – spraff

+0

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. –

+0

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

Problemi correlati