Как выполнить код JavaScript в отладчике Google Chrome, как прекратить выполнение скрипта, если я не хочу продолжать? Единственный способ, который я нашел, это закрыть окно браузера.
Нажатие "Перезагрузить эту страницу" запускает остальную часть кода и даже отправляет формы, как если бы вы нажимали F8 "Продолжить".
ОБНОВЛЕНИЕ:
При нажатии F5 (Обновить) во время приостановки скрипта:
- Google Chrome (v22) запускает скрипт. Если скрипт отправляет HTTP-запрос, отображается HTTP-ответ на этот запрос. Исходная страница не обновляется.
- IE 9 просто зависает. Однако в IE есть опция "Остановить отладку", которая при нажатии (при условии, что вы не нажимали F5 ранее) продолжает запускать сценарий вне отладчика.
- Firebug ведет себя идентично Chrome.
Закрытие, а затем повторное открытие окна браузера не всегда является следующим простым способом, поскольку он уничтожает состояние сеанса браузера, и это может быть важно. Все ваши точки останова также потеряны.
ОБНОВЛЕНИЕ (январь 2014):
Обновить во время отладки:
- Chrome v31: позволяет запускать сценарии и останавливается на дальнейших точках останова (но не отправляет ajax-запросы), затем обновляется.
- IE 11: обновление ничего не делает, но вы можете нажать F5, чтобы продолжить.
- Firefox v26: позволяет запускать сценарии, но не останавливается на дальнейших точках останова, отправляет запросы ajax, а затем обновляет.
Вид прогресса!
Перейдите на ту же страницу во время отладки:
- Chrome v31: такой же, как Refresh.
- IE 11: сценарии завершены, новый сеанс браузера запущен (аналогично закрытию и открытию снова).
- Firefox v26: ничего не происходит.
Также Juacala предложил эффективный обходной путь. Например, если вы используете jQuery, запуск delete $ из консоли остановит выполнение, как только встретится любой метод jQuery. Я протестировал его во всех вышеперечисленных браузерах и могу подтвердить, что он работает.
ОБНОВЛЕНИЕ (март 2015):
Наконец, после 2 лет и почти 10 тысяч просмотров правильный ответ дал Александр К. В Google Chrome есть собственный диспетчер задач, который может завершить процесс вкладки, не закрывая саму вкладку, сохраняя все точки останова и другие элементы в целости и сохранности.
Я даже дошел до BrowserStack.com, чтобы протестировать его в Chrome v22, и обнаружил, что это работает даже в то время.
Обходной путь Juacala по-прежнему полезен при отладке в IE или Firefox.
ОБНОВЛЕНИЕ (январь 2019):
Наконец-то в Chrome Dev Tools добавлен правильный способ остановить выполнение скрипта, что приятно (хотя и немного скрыто). За подробностями обращайтесь к ответу Джеймса Гентеса.