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!

josh3736
źródło

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.

josh3736
źródło
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.

alxndr
źródło
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
SpareBytes
źródło
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,
0

Korzystając z Google-fu, znalazłem oficjalną listę Google skrótów klawiaturowych Chrome

Wygląda na to, że nie ma takiego dedykowanego. Zawsze możesz napisać wtyczkę, która interpretowałaby kombinację klawiszy jako przycisk pauzy, jeśli chcesz.

technowizard12
źródło