Сочетание клавиш Chrome для приостановки выполнения скрипта

48

Есть ли в Google Chrome комбинация клавиш, которая прервет выполнение скрипта? (Аналогично нажатию кнопки ||«Приостановить выполнение сценария» на панели «Сценарии инструментов разработчика».)

Я хотел бы использовать Dev Tools для проверки элемента в состоянии наведения мыши; mouseleaveкод будет очевидно работать , если я пытаюсь на самом деле нажмите на кнопку паузы!

josh3736
источник

Ответы:

56

Хотя я не нашел точного решения этой проблемы, я нашел однострочник, который можно поместить на страницу (или вставить в консоль Javascript) для достижения моей цели:

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

Это заставит выполнение быть приостановлено, когда вы нажмете F12.

( debuggerэто оператор JavaScript, который вызывает точку останова.)


Обновление: Dev Tools имеет много встроенных ярлыков (нажмите F1для получения списка), но вы должны сосредоточиться в окне Dev Tools, чтобы они работали. Приостановка выполнения скрипта F8(при просмотре вкладки «Источники», начиная с Chrome 45) или Ctrl+ /.

Приведенная выше строка может быть полезна, если вам нужно сосредоточиться на странице, прежде чем делать паузу.

josh3736
источник
6
F8 работает только когда вы находитесь на странице «Источники» в DevTools (Chrome 40)
netvope
1
CTRL + / работает под Linux или что-то еще? Поскольку CTRL + \, кажется, работает под Windows, и согласно другим это будет CMD + \ для MAC.
Джабрахам
1
Тот же эффект, но не требующий jQuery:window.addEventListener('keydown', e => { if (e.keyCode === 123) debugger })
pau.moreno
иногда горячие клавиши событий закрывают элемент, который вы хотите проверить, setTimeout(function() { debugger; }, 1000)здесь помогает
cyptus
14

Справочные списки сочетаний клавиш Google для «Пауза / возобновление выполнения сценария»:

  • F8или Ctrl+ \(Windows)
  • F8или Cmd+ \(Mac)

Существуют более простые способы осмотра вещей в нечетных состояниях, таких как зависание или активный режим. Сначала найдите узел DOM на панели «Элементы» в Chrome Dev Tools. Теперь вы можете либо щелкнуть правой кнопкой мыши узел и посмотреть «Состояние элемента силы» в контекстном меню, либо выбрать узел и посмотреть на вкладке «Стили» и найти значок с пунктирной рамкой с указателем мыши в правом верхнем углу. (рядом со значком + / плюс, который позволяет добавить новое правило CSS к element.styleвыбранному элементу).

Когда вы активируете одно из этих состояний, на левом поле панели элементов появляется маленький кружок, указывающий, что вы переопределили естественное состояние элемента в этой строке.

alxndr
источник
3
F8 не работает в главном окне браузера, только в окне Dev Tools. Использование Force Element State не помогает, когда скрипт выполняет прослушивание событий (а не только CSS).
josh3736
3
F8 работает в главном окне браузера, но у вас должно быть окно Dev Tools, открытое на вкладке Source в фоновом режиме.
изменить
8

Я написал небольшое расширение для Chrome, которое позволяет вам нажимать кнопку «Пауза» на клавиатуре, чтобы приостановить выполнение JavaScript

Как получить его:

Использование:

  1. Держите инструменты разработчика Chrome открытыми
  2. Нажмите pause/breakна клавиатуре
SpareBytes
источник
1
@Flu, я добавил его в Интернет-магазин Chrome. Наслаждайтесь
SpareBytes
Это отлично работало - я смог сделать паузу, чтобы я мог динамически проверять HTML-код на странице. Использование инструментов разработчика не работало, потому что код был удален кодом, когда он потерял фокус.
Кенни Эвитт
На моей клавиатуре нет кнопки «Пауза / разрыв», поэтому мне пришлось сопоставить ее с другой клавишей. Для меня не сразу было очевидно, что вам нужно удерживать нажатой новую комбинацию клавиш, пока вы нажимаете кнопку «Сохранить комбинацию».
Джаспер Сити