Kann ich den Chrome-Skript-Debugger anweisen, jquery.js zu ignorieren?

98

Gibt es eine Möglichkeit, den Chrome-Debugger (oder vielleicht Firebug?) Anzuweisen, dass bestimmte Dateien nicht beschädigt werden sollen? Um anzunehmen, dass sie im Wesentlichen nicht kaputt sind? Dies scheint etwas zu sein, in das sie einbauen könnten.

Josh Schultz
quelle
3
Dies wäre für mich im Zusammenhang mit Abfrageereignissen besonders nützlich. Wenn ein Ereignis ausgelöst wird, müssen Sie eine Menge Grob durchlaufen, um herauszufinden, welche Handler aufgerufen werden.
Tofarr
Es sieht so aus, als sollten Sie jfriend00 als Antwort markieren. Ich konnte den Grund für dieses nervige Verhalten nicht finden und seine Antwort löste es auf.
OrPaz
@OrPaz Ich bin anderer Meinung, mein Problem (und mein Verständnis von Joshs Problem) ist, dass wir unsere Datei debuggen, dies bedeutet jedoch nicht, dass eine Ausnahme ausgelöst wird. Ich gehe davon aus, dass mein Code das Problem ist und nicht jQuerys, daher möchte ich jQuery niemals debuggen. Ich denke, es ist wie das DebuggerHiddenAttribute in .NET
Nathan Koop
Ich habe die Antwort von jfriend00 abgelehnt, weil sie für Leute, die auf diese Frage stoßen, wertvoll sein könnte, aber ich habe sie nicht als die richtige Antwort markiert, weil Nathan Koop Recht hat, sie mein Problem nicht löst.
Josh Schultz

Antworten:

47

Das Blackboxen von JS-Dateien ist jetzt in Firefox unter https://developer.mozilla.org/en-US/docs/Tools/Debugger möglich

Und in Chrome Canary mit experimentellen Entwicklungswerkzeugen. http://www.divshot.com/blog/tips-and-tricks/ignoring-library-code-while-debugging-in-chrome/

Update . In ChromeVersion 75 gibt es eine separate Registerkarte für Blackboxing .

Oben funktioniert jetzt auch in stabilem Chrome-Build.

Nirmal Patel
quelle
7
Blackboxing scheint den Debugger nicht dazu zu bringen, die Datei zu überspringen. Es wird immer noch seine Funktionsaufrufe durchlaufen ... Eine Datei vollständig zu ignorieren wäre schön.
Antonio Brandao
4
Das ist der Punkt beim Blackboxing - das Ausführen des Codes, ohne dessen Inhalt zu sehen.
Diynevala
1
Ist kein Blackboxing, wenn Sie einfach nicht durch die anderen Bibliotheken gehen, nicht dass sie nicht existieren oder nicht verwendet werden.
Johnny
aktualisierter Link für Firefox: developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/…
pcarvalho
31

Die neueste Version von Chrome hat eine neue Blackbox-Funktion implementiert , die genau das tut, wonach Sie suchen. Wenn Sie die Blackbox-Option für eine bestimmte Datei festlegen, wird der Chrome-Debugger grundsätzlich daran gehindert, in diese Datei einzudringen.

Diese Funktion ist integriert und kann über das Kontextmenü der Datei festgelegt werden (Rechtsklick). Dies funktioniert auch, wenn der Chrome-Debugger so eingestellt ist, dass alle Ausnahmen gestoppt werden.

The_Black_Smurf
quelle
2
Sehr saubere Lösung Keine Plugins erforderlich.
George Botros
3
Funktioniert leider nicht mehr. Wenn Sie "Pause bei gefangenen Ausnahmen" aktiviert und dann die Blackbox jQuery aktiviert haben, werden die Ausnahmen weiterhin unterbrochen.
Blackmamba
15

Wenn das Problem darin besteht, dass der Chrome-Debugger bei allen Ausnahmen stoppt, auch bei denen in jQuery, müssen Sie Chrome möglicherweise anweisen, nur bei nicht erfassten Ausnahmen anzuhalten, nicht bei allen Ausnahmen. Im Skriptfenster des Debuggers befindet sich in der unteren linken Ecke des Fensters ein Symbol, das dies steuert.

jfriend00
quelle
Hat mich damit gerettet! Vielen Dank! (+ 1)
OrPaz
12

Öffnen Sie in Chrome die Entwicklertools und gehen Sie zu Einstellungen. Die Registerkarte Blackbox wird angezeigt:

Chrome Blackbox

In FireFox ist es noch einfacher, klicken Sie einfach auf das Auge am Ende der Datei:

FireFox Blackbox

sMyles
quelle
Du hast gerade mein Leben zum Himmel gemacht! Vielen Dank!
Weiß nicht
7
  1. Gehen Sie zur Einstellung der Entwicklertools und klicken Sie im linken Bereich auf die Registerkarte Balckboxing.
  2. Klicken Sie dann auf die Schaltfläche Muster hinzufügen und geben Sie jquery.js ein
  3. Schließen Sie die Entwicklertools und öffnen Sie sie erneut. Jetzt wird sie übersprungen!
Mahmood Asadi
quelle
2

Wenn der Debugger irgendwo in den jQuery-Dateien explodiert, können Sie möglicherweise die verdächtigen Aufrufe in einen Versuch / Fang einschließen und dann einen eigenen Fehler auslösen catch. Auf diese Weise können Sie genau isolieren, wo Sie falsch liegen.

Ich würde eher Stack-Traces erstellen, um zu sehen, warum mein Code explodiert, z. B. ungültiges JSON, als zu versuchen, ihn zu beschönigen.

Kelly Sutton
quelle