Chrome-Tastaturkürzel zum Unterbrechen der Skriptausführung


48

Gibt es eine Tastenkombination in Google Chrome, die die Skriptausführung unterbricht? (Entspricht dem Klicken auf die ||Schaltfläche "Skriptausführung anhalten" im Bedienfeld "Developer Tools-Skripts".)

Ich möchte die Dev Tools verwenden, um ein Element im Mouseover-Status zu untersuchen. Der mouseleaveCode wird offensichtlich ausgeführt, wenn ich versuche, tatsächlich auf die Pause-Schaltfläche zu klicken!

Antworten:


56

Obwohl ich keine genaue Lösung für dieses Problem gefunden habe, habe ich mir einen Einzeiler ausgedacht, der in eine Seite eingefügt (oder in die Javascript-Konsole eingefügt) werden kann, um mein Ziel zu erreichen:

jQuery(window).keydown(function(e) { if (e.keyCode == 123) debugger; });

Dadurch wird die Ausführung angehalten, wenn Sie auf drücken F12.

( debuggerist eine JavaScript-Anweisung, die einen Haltepunkt erzwingt.)


Update: Dev Tools verfügt über viele integrierte Verknüpfungen (drücken Sie F1für eine Liste), aber Sie müssen sich auf das Dev Tools-Fenster konzentrieren, damit sie funktionieren. Anhalten der Skriptausführung ist F8(auf der Registerkarte "Quellen" ab Chrome 45) oder Ctrl+ /.

Der obige Einzeiler kann weiterhin nützlich sein, wenn Sie vor dem Anhalten auf der Seite konzentriert bleiben müssen.


6
F8 funktioniert nur, wenn Sie sich in DevTools (Chrome 40) auf der Seite "Sources" befinden
netvope

1
Funktioniert STRG + / unter Linux oder so? Da STRG + \ unter Windows zu funktionieren scheint, ist es laut anderen CMD + \ für MAC.
Djabraham

1
Der gleiche Effekt, aber ohne jQuery:window.addEventListener('keydown', e => { if (e.keyCode === 123) debugger })
pau.moreno

Manchmal schließen Event-Hotkeys das Element, das Sie untersuchen möchten, und setTimeout(function() { debugger; }, 1000)helfen dabei
cyptus

14

Googles Tastaturkürzel-Referenzlisten für "Skriptausführung anhalten / fortsetzen":

  • F8oder Ctrl+ \(Windows)
  • F8oder Cmd+ \(Mac)

Es gibt einfachere Möglichkeiten, Dinge in ungewöhnlichen Zuständen wie Schweben oder Aktiv zu untersuchen. Suchen Sie zunächst den DOM-Knoten im Bereich "Elemente" der Chrome Dev Tools. Jetzt können Sie entweder mit der rechten Maustaste auf den Knoten klicken und den "Elementstatus erzwingen" im Kontextmenü anzeigen oder den Knoten auswählen und auf der Registerkarte "Stile" das Symbol für das gestrichelte Kästchen mit dem Mauszeiger oben rechts suchen (Neben dem + / plus-Symbol element.style, mit dem Sie dem ausgewählten Element eine neue CSS-Regel hinzufügen können ).

Wenn Sie einen dieser Zustände aktivieren, wird am linken Rand des Elementfensters ein kleiner Kreis angezeigt, der darauf hinweist, dass Sie den natürlichen Zustand des Elements in dieser Zeile überschrieben haben.


3
F8 funktioniert nicht im Hauptbrowserfenster, sondern nur im Dev Tools-Fenster. Die Verwendung des Force-Element-Status ist nicht hilfreich, wenn ein Skript Ereignisse (und nicht nur CSS) abhört, die Aufgaben ausführen.
Josh3736

3
F8 funktioniert im Hauptbrowserfenster, aber Sie müssen das Dev Tools-Fenster auf der Registerkarte Source im Hintergrund öffnen.
Reor

8

Ich habe eine kurze kleine Chrome-Erweiterung geschrieben, mit der Sie die Pause-Taste auf Ihrer Tastatur drücken können, um die Ausführung von Javascript anzuhalten

Wie man es bekommt:

Verwendungszweck:

  1. Lassen Sie die Chrome-Entwicklertools geöffnet
  2. Drücken Sie pause/breakauf Ihrer Tastatur

1
@Flu, ich habe es dem Chrome Web Store hinzugefügt. Viel Spaß
SpareBytes

Das hat super geklappt - ich konnte pausieren, um HTML dynamisch in die Seite einzufügen. Die Verwendung der Entwicklertools funktionierte nicht, da der HTML-Code beim Verlust des Fokus vom Code entfernt wurde.
Kenny Evitt

Meine Tastatur hat keine "Pause / Pause" -Taste, daher musste ich sie einer anderen Taste zuordnen. Was mir nicht sofort klar war, ist, dass Sie die neue Tastenkombination gedrückt halten müssen, während Sie auf die Schaltfläche "Save Combo" klicken.
Jasper Citi

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.