Говоря Firebug, чтобы сломаться как только исполняется любой Javascript - PullRequest
12 голосов
/ 21 декабря 2009

Я унаследовал кучу кода, который делает неожиданные вещи, когда я нажимаю на некоторые <button> элементы.

На странице много Javascript, и неясно, какие события были настроены для кнопки или ее родительских элементов. Я пытаюсь найти, где начинается выполнение, чтобы я мог отладить, что происходит.

Есть ли способ заставить Firebug (или любой отладчик Javascript) прерываться всякий раз, когда выполняется любой код JavaScript? Может быть, каким-то образом установить точку останова на каждой строке программно? Или есть какой-то другой способ узнать, на какое событие реагирует кнопка (пользователи страницы Boh Prototype, jQuery и некоторый пользовательский Javascript. Я знаю)

Ответы [ 5 ]

12 голосов
/ 21 декабря 2009

Просто нажмите кнопку Pause на панели Firebug (в левом верхнем углу, две желтые вертикальные линии, когда выбрана вкладка Script) - и она остановится на первой строке JS.

Но это остановит выполнение JS действительно в ЛЮБОЕ событие - поэтому, если у вас есть кнопка, которая ловит движение мыши и щелчок мыши - я не смогу остановиться на щелчке мыши, так как скрипт будет останавливаться при перемещении мыши каждый раз попробуйте навести курсор мыши на эту кнопку. Я предлагаю вам просто вставить alert () в подозрительные места - после нескольких итераций вы найдете именно ту строку, которая вам нужна (там, где возникает ошибка).

3 голосов
/ 08 ноября 2012

Закройте интернет-браузер и снова откройте его. «Break on next» снова начнет работать. В противном случае Firebug просто игнорирует эту опцию через некоторое время и не прерывается, а запускает javascripts для всех событий без предупреждения.

2 голосов
/ 21 декабря 2009

Если вы хотите увидеть, какие события настраиваются на странице, вы также можете попробовать Eventbug .

2 голосов
/ 21 декабря 2009

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

Этот тип будет полезен, если вы не знаете, какие события связаны сторонним кодом.

1 голос
/ 21 декабря 2009

Если это общая проблема отладки, вы можете использовать веб-инспектор в Safari / Chrome. Дополнительным бонусом является то, что вы можете добавить следующую инструкцию в свой код JavaScript для запуска отладчика:

...
debugger; // Will trigger the debugger
...

В противном случае вы можете установить контрольные точки, условные контрольные точки, паузы при следующем выполнении и все обычные приемы. Некоторые хорошие видео доступны здесь .

В ответ на предложение alert ранее. Я бы настоятельно рекомендовал использовать console.log или console.dir, если у вас есть доступ к отладчику. Вы получите больше информации, не блокируя выполнение вашего скрипта. Кроме того, не забывайте, что console.log может принимать несколько параметров, так что вы можете легко распечатать данные, вам не нужно ограничиваться одной строкой, такой как alert.

...