Lösung 1: Framework Blackboxing
Funktioniert großartig, minimales Setup und keine Dritten.
Laut der Dokumentation von Chrome :
Was passiert, wenn Sie ein Skript Blackboxen?
Vom Bibliothekscode ausgelöste Ausnahmen werden nicht angehalten (wenn Pause bei Ausnahmen aktiviert ist). Beim Ein- und Aussteigen / Übergehen wird der Bibliothekscode umgangen. Haltepunkte des Ereignis-Listeners brechen den Bibliothekscode nicht ein. Der Debugger pausiert nicht bei in der Bibliothek festgelegten Haltepunkten Code. Das Endergebnis ist, dass Sie Ihren Anwendungscode anstelle von Ressourcen von Drittanbietern debuggen .
Hier ist der aktualisierte Workflow:
- Öffnen Sie die Chrome Developer Tools ( F12oder ⌘+ ⌥+ i) und gehen Sie zu den Einstellungen (oben rechts oder F1). Suchen Sie links eine Registerkarte mit dem Namen " Blackboxing ".
- Hier legen Sie das RegEx- Muster der Dateien ab, die Chrome beim Debuggen ignorieren soll. Zum Beispiel:
jquery\..*\.js
(glob Muster / menschliche Übersetzung: jquery.*.js
)
- Wenn Sie Dateien mit mehreren Mustern überspringen möchten, können Sie sie mithilfe des Pipe-Zeichens hinzufügen
|
, z. B.: jquery\..*\.js|include\.postload\.js
(Das sozusagen wie ein "oder dieses Muster" wirkt. Oder fügen Sie sie mit der Schaltfläche "Hinzufügen" hinzu.
- Fahren Sie nun mit der unten beschriebenen Lösung 3 fort .
Bonus-Tipp! Ich verwende Regex101 regelmäßig (aber es gibt viele andere :) , um meine rostigen Regex-Muster schnell zu testen und herauszufinden, wo ich mit dem schrittweisen Regex-Debugger falsch liege. Wenn Sie reguläre Ausdrücke noch nicht "fließend" beherrschen, empfehle ich Ihnen, Websites zu verwenden, die Ihnen beim Schreiben und Visualisieren helfen, z. B. http://buildregex.com/ und https://www.debuggex.com/.
Sie können das Kontextmenü auch verwenden, wenn Sie im Quellenbedienfeld arbeiten. Wenn Sie eine Datei anzeigen, können Sie mit der rechten Maustaste in den Editor klicken und Blackbox-Skript auswählen. Dadurch wird die Datei zur Liste im Einstellungsfenster hinzugefügt:
Lösung 2: Visuelles Ereignis
Es ist ein ausgezeichnetes Werkzeug, um :
Visual Event ist ein Open-Source-Javascript-Lesezeichen, das Debugging-Informationen zu Ereignissen enthält, die an DOM-Elemente angehängt wurden. Visuelles Ereignis zeigt:
- Mit welchen Elementen sind Ereignisse verbunden?
- Die Art der Ereignisse, die an ein Element angehängt sind
- Der Code, der mit dem Ereignis ausgeführt wird, wird ausgelöst
- Die Quelldatei und die Zeilennummer, für die die angehängte Funktion definiert wurde (nur Webkit-Browser und Opera)
Lösung 3: Debuggen
Sie können den Code anhalten, wenn Sie auf eine beliebige Stelle auf der Seite klicken oder wenn das DOM geändert wird ... und andere Arten von JS-Haltepunkten , die Sie kennen sollten. Sie sollten hier Blackboxing anwenden , um einen Albtraum zu vermeiden.
In diesem Fall möchte ich wissen, was genau passiert, wenn ich auf die Schaltfläche klicke.
Öffnen Sie die Registerkarte Dev Tools -> Sources und suchen Sie rechts Event
Listener Breakpoints
:
Erweitern Mouse
und auswählenclick
- Klicken Sie nun auf das Element (die Ausführung sollte pausieren), und Sie debuggen jetzt den Code. Sie können den gesamten Code durchgehen F11(dies ist Step in ). Oder gehen Sie ein paar Sprünge im Stapel zurück. Es kann eine Menge Sprünge geben
Lösung 4: Angelschlüsselwörter
Wenn Dev Tools aktiviert ist, können Sie die gesamte Codebasis (den gesamten Code in allen Dateien) mit ⌘+ ⌥+ Foder: durchsuchen.
und das Suchen #envio
oder was auch immer das Tag / die Klasse / die ID ist, von der Sie denken, dass sie die Party startet, und Sie können schneller als erwartet irgendwohin gelangen.
Beachten Sie, dass manchmal nicht nur img
viele Elemente gestapelt sind und Sie möglicherweise nicht wissen, welches den Code auslöst.
Wenn dies etwas außerhalb Ihres Wissens liegt, lesen Sie das Chrome-Tutorial zum Debuggen .
Visual Event
Lesezeichen. Es erkennt Klickereignisse, die an gängige Bibliotheken gebunden sind, und erstellt eine Überlagerung der Site, die zeigt, wo Ereignisse gebunden sind, und gibt Codebeispiele und Quellspeicherorte für jedes Ereignis an.