Подтвердить что ты не робот

Отладка событий JavaScript с помощью Firebug

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

Возможно ли каким-либо образом установить точку останова, например, событие щелчка элемента с идентификатором registerButton или найти где-нибудь, какая функция привязана к этому событию?

Я нашел надстройку Firefox Javascript Deobfuscator, которая показывает выполненный в настоящее время JavaScript, что хорошо, но код, который мне нужно отлаживать, использует jQuery, поэтому множество вызовов функций даже на самом простом событии, поэтому я тоже не могу использовать это.

Есть ли какой-нибудь отладчик, специально предназначенный для jQuery?

Кто-нибудь знает какой-нибудь инструмент, который превращает восстановленный JavaScript обратно в форматированный код, например, верните function(){alert("aaa");v=3;} обратно в

function() {
   alert("aaa");
   v = 3;
}
4b9b3361

Ответ 1

Ну, это может быть слишком много неприятностей, чем это стоит, но похоже, что у вас есть три дела:

  • Измените источник. Мне нравится этот онлайн-инструмент для быстрого и грязного. Просто вставьте свой код и нажмите кнопку. Никогда не подводил меня, даже на самых напуганных JavaScript.

  • Все связующие события jQuery передаются в "jQuery.event.add" (вот что он выглядит в незастроенном источнике), поэтому вы нужно найти этот метод и установить там точку останова.

  • Если вы дошли до этого, все, что вам нужно сделать, это проверить столбец в точке останова, чтобы узнать, кто его назвал. Обратите внимание: поскольку вы находитесь на внутреннем месте в библиотеке, вам нужно будет проверить несколько выходов (поскольку код, вызывающий "jQuery.event.add", скорее всего, просто другие функции jQuery).

Обратите внимание, что 3) требует Firebug для FF3. Если вы похожи на меня и предпочитаете отлаживать Firebug для FF2, вы можете использовать вековой метод arguments.callee.caller.toString() для проверки стоп-кода, вставляя как можно больше ".caller ".


Изменить. Также см. "Как отлаживать привязки событий Javascript/jQuery с помощью FireBug (или аналогичного инструмента)" .

Возможно, вам удастся избежать:

// inspect    
var clickEvents = jQuery.data($('#foo').get(0), "events").click;
jQuery.each(clickEvents, function(key, value) {
    alert(value) // alerts function body
})

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

Ответ 2

Сначала замените миниатюрный jquery или любой другой источник, который вы используете с созданным. Еще один полезный трюк, который я нашел, - это использование профайлера в firebug. Профилировщик показывает, какие функции выполняются, и вы можете щелкнуть по одному и пойти туда, чтобы установить точку останова.

Ответ 3

Просто обновление:

Google Chrome (инструменты разработчика в нем) поддерживают всевозможные точки останова, а также break on Event.

Все события вместе с ориентацией устройства и таймеры

Вы можете увидеть видео с презентацией всех возможностей от Google IO.

Также существует встроенный деминератор/ unminimizer/ префитер, который поможет вам установить контрольные точки вручную на сжатые файлы javascript.

Ответ 4

Что вы можете сделать, так это получить сокращенный код - у вас будет доступ к этому. Измените код в соответствии с параметром Crescent Fresh (1) или любым способом, который вы предпочитаете.

Затем загрузите и установите Fiddler - все веб-разработчики должны иметь этот невероятный инструмент.

Затем, используя Fiddler, вы можете перехватить вызов браузера для файла minified.js с локальным unminified.js, который у вас есть на вашем локальном диске.

Fiddler в основном перехватывает ваш запрос браузера для определенного файла и может обслуживать другой файл в вашем браузере. Итак, теперь вы можете посмотреть на неминифицированный код.

Легко.

Другой вариант - использовать Firefox и установить на нем отладчик Venkman - намного лучше, чем Firebug IMHO, а отладчик Venkman имеет параметр "довольно печатной", который может визуально унифицировать минифицированный код во время выполнения. Придерживайтесь точки разрыва, где бы вы ни хотели...

Ответ 5

Другое обновление: теперь есть расширение firebug, которое украшает JavaScript:

https://addons.mozilla.org/en-US/firefox/addon/javascript-deminifier/

Он отлично работает для меня в Firefox 12.0.

Подтвердите ответ для определения его.

Ответ 6

Вы можете использовать команду debugger в любом месте файла javascript. Когда интерпретатор попадает в этот статус, если отладчик доступен (например, Firebug), он запускается

Ответ 7

найдите линию и поместите точку останова. Затем перезагрузите сайт/страницу. Затем firebug автоматически приостанавливает выполнение инструкции при достижении точки останова.

Ответ 8

Это выполнит эту работу. http://jsbeautifier.org/ Вы также можете искать Google для обозревателя javascript.