Ответ 1
Вот как я это сделал, с веб-консоли (а не блокнота):
window.addEventListener("keydown", function() {debugger;})
Затем вернитесь на вкладку отладчика. Когда вы фокусируете документ и нажимаете клавишу, браузер приостанавливает JS.
Возможно ли, если Firebug остановит javascript нажатием кнопки или сочетанием клавиш вместо того, чтобы остановить его, установив точку останова?
Зачем мне это делать? У нас очень динамичный веб-сайт с большим количеством анимаций. Было бы очень полезно, если бы я мог просто остановить сценарии в момент, когда анимация делает то, что я хочу проверить. Это было бы намного быстрее, чем возиться с точками останова.
Вот как я это сделал, с веб-консоли (а не блокнота):
window.addEventListener("keydown", function() {debugger;})
Затем вернитесь на вкладку отладчика. Когда вы фокусируете документ и нажимаете клавишу, браузер приостанавливает JS.
В Firebug есть кнопка паузы. Нажав на это, вы ищете.
Firebug имеет разные способы остановить выполнение script, не устанавливая точки останова в определенных строках. Эти параметры называются Функции разблокировки.
В вашем случае я вижу два релевантных варианта:
Разбить JavaScript на следующей выполненной строке
На панели script есть кнопка Break On Next (), что позволяет остановить выполнение script в следующем исполняемом JavaScript-заявлении. Эта функция также может быть активирована с помощью сочетания клавиш Ctrl + Alt + B.
Итак, просто нажмите комбинацию клавиш, когда анимация находится в точке, когда вы хотите ее проверить.
Перерыв в HTML-мутации
На панели HTML есть кнопка Break On Mutate (), что позволяет остановить выполнение script при следующей мутации HTML.
Есть также более мелкозернистые опции для остановки при мутации определенного элемента, которые доступны в контекстном меню элементов. Этими параметрами являются:
В вашем случае Break On Attribute Change может быть правильным выбором, если анимация изменяет CSS в атрибуте style
элемента.
Если вы знаете, где он делает что-то, что вы хотите проверить, то что не так с точкой останова? Кроме того, вы можете использовать ключевое слово debugger в коде, или вы можете вводить в свой код инструкции console.log/debug/warn/info. (Вы можете заглушить консольный объект для тех сред, у которых их нет).
Из того, что вы описали, я предполагаю, что ведение журнала консоли javascript из вашего кода может помочь вам лучше всего. Проверьте http://getfirebug.com/wiki/index.php/Console_API.
в зависимости от используемой библиотеки анимации, может быть метод "остановить все анимации" - jQuery.stop(), например. как вы обрабатываете анимацию?
Если вы используете плагин веб-разработчика, вы можете отключить все java script от запуска на странице, а затем использовать firebug, как вы пожелаете.
Лучший способ исправить это - перейти к выпадающему списку HTML, который находится рядом с вкладкой HTML в firebug. Отмените выделение "выделить изменения" и "прокрутить изменения для просмотра", и это должно позволить вам проверять исполняемый код html и css. Надеюсь, вы, ребята, хотели это сделать.
Если веб-сайт постоянно перезагружает контент с вашего сервера, вы можете переключиться на панель "Сеть". В контекстном меню есть запись "Перерыв на XHR", которая при проверке остановит ваш script всякий раз, когда он пытается получить новый контент.
Самый простой способ - установить расширение Firefox PrefBar. Там вы можете добавить флажок "JavaScript". Если вы отключите его, javascript остановится.