Ловля определенного кода JavaScript, выполненного onClick

Я работаю на территории, у которой есть множество наследия, которое включают JavaScript и jQuery и нет никакой документации, чтобы показать то, что происходит когда.

У меня есть определенная проблема, чтобы зафиксировать, и я не могу найти соответствующий код, который выполняется, когда кнопка нажата. Чтобы спасти меня от траления до (и понимание) сотни линий устаревшего сценария, там особенность, возможно в Поджигателе, который определит, какой сценарий выполняется, когда я нажимаю на кнопку?

Спасибо за помощь.

25
задан Kevin 13 January 2010 в 16:01
поделиться

3 ответа

Полагаю, в окне консоли Firebug есть функция Profile . Нажмите на профиль, нажмите на кнопку, затем снова нажмите на профиль. Она должна дать Вам то, как все функции вызывались в то время. Предупреждаем, что если этот код включает jQuery, вы можете получить огромный длинный список функций, потому что jQuery использует тонны в своем коде. К сожалению, профилировщик также покажет анонимные функции, что действительно может быть больно.

В противном случае, выполните поиск в коде по классу или ID кнопки и просмотрите их. Если у вас есть идентификатор fancy, то вы можете выполнить поиск #fancy в вашем коде и попытаться его найти. Это может привести Вас, по крайней мере, в направлении общего .

17
ответ дан 28 November 2019 в 21:37
поделиться

Вы можете нажать кнопку «Перерыв в Firebug» (на вкладке скрипта; это выглядит как кнопка паузы), затем нажмите кнопку, которую вы хотите отлавить.

В следующий раз любой код JavaScript выполняется, Firebug перерывается в отладчик и покажет вам эту строку кода.

7
ответ дан 28 November 2019 в 21:37
поделиться

В Firebug можно установить точку останова в некоторых JS, а затем получить стек, который сообщит вам о текущем стеке вызова функций. Таким образом, если вы установите точку останова в функции, используемой несколькими обработчиками, то вы можете использовать это, чтобы узнать, в каком именно обработчике вы находитесь.

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

0
ответ дан 28 November 2019 в 21:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: