Skrót klawiaturowy Chrome, aby wstrzymać wykonywanie skryptu


48

Czy w Google Chrome jest skrót klawiaturowy, który przerywa wykonywanie skryptu? (Odpowiednik naciśnięcia przycisku ||„Wstrzymaj wykonywanie skryptu” w panelu Skryptów narzędzi programistycznych).

Chciałbym użyć Narzędzi programistycznych do sprawdzenia elementu w stanie najechania kursorem; mouseleavekod będzie oczywiście działać, jeśli staram się rzeczywiście kliknij przycisk pauzy!

Odpowiedzi:


56

Chociaż nie znalazłem dokładnego rozwiązania tego problemu, wymyśliłem jednowierszowy, który można umieścić na stronie (lub wkleić w konsoli Javascript), aby osiągnąć mój cel:

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

Spowoduje to wstrzymanie wykonywania po naciśnięciu F12.

( debuggerto instrukcja JavaScript, która wymusza punkt przerwania).


Aktualizacja: Dev Tools ma wiele wbudowanych skrótów (naciśnij, F1aby wyświetlić listę), ale musisz się skupić w oknie Dev Tools, aby działały. Wstrzymywanie wykonywania skryptu to F8(patrząc na kartę Źródła, od Chrome 45) lub Ctrl+ /.

Powyższy linijka może być nadal przydatna, jeśli musisz się skupić na stronie przed wstrzymaniem.


6
F8 działa tylko wtedy, gdy jesteś na stronie „Źródła” w DevTools (Chrome 40)
— netvope

1
Czy CTRL + / działa pod Linuksem czy coś takiego? Ponieważ CTRL + \ wydaje się działać pod Windows, a według innych będzie to CMD + \ dla MAC.
— djabraham

1
Ten sam efekt, ale bez wymagania jQuery:window.addEventListener('keydown', e => { if (e.keyCode === 123) debugger })
— pau.moreno

czasami skróty klawiszowe zdarzeń zamykają element, który chcesz sprawdzić, setTimeout(function() { debugger; }, 1000)pomaga tutaj
— cyptus

14

Skróty klawiaturowe Google Listy referencyjne dla „Wstrzymaj / wznów wykonywanie skryptu”:

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

Są łatwiejsze sposoby sprawdzania rzeczy w stanach nieparzystych, takich jak najechanie myszą lub aktywne. Najpierw znajdź węzeł DOM w panelu Elementy w Chrome Dev Tools. Teraz możesz albo kliknąć prawym przyciskiem myszy węzeł i spojrzeć na „Wymuś stan elementu” w menu kontekstowym, albo wybrać węzeł i zajrzeć na kartę Style i znaleźć ikonę przerywanego pola ze wskaźnikiem myszy w prawym górnym rogu (obok ikony + / plus, która pozwala dodać nową regułę CSS do element.stylewybranego elementu).

Kiedy aktywujesz jeden z tych stanów, lewy margines okienka elementów robi małe kółko, wskazując, że zastąpiłeś naturalny stan elementu na tej linii.


3
F8 nie działa w głównym oknie przeglądarki, tylko w oknie narzędzi deweloperskich. Używanie Force Element State nie pomaga, gdy skrypt słucha zdarzeń (a nie tylko CSS), który robi rzeczy.
— josh3736,

3
F8 działa w głównym oknie przeglądarki, ale okno narzędzi deweloperskich musi być otwarte na karcie Źródło w tle.
— reor

8

Napisałem szybkie małe rozszerzenie Chrome, które pozwala nacisnąć przycisk Pause na klawiaturze, aby wstrzymać wykonywanie javascript

Jak zdobyć:

Stosowanie:

  1. Zachowaj otwarte narzędzia programistyczne Chrome
  2. Naciśnij pause/breakna klawiaturze

1
@Flu, dodałem go do Chrome Web Store. Ciesz się
— SpareBytes

Działa to świetnie - mogłem wstrzymać się, aby móc dynamicznie sprawdzać HTML wstrzykiwany na stronę. Korzystanie z narzędzi programistycznych nie działało, ponieważ kod HTML był usuwany przez kod, gdy stracił fokus.
— Kenny Evitt,

Moja klawiatura nie ma przycisku „Pauza / przerwa”, więc musiałem odwzorować go na inny klawisz. To, co nie było od razu oczywiste dla mnie, to to, że musisz przytrzymać nową kombinację klawiszy PODCZAS klikania przycisku „Zapisz kombinację”.
— Jasper Citi,

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.