2013-08-18 8 views
2

Я отлаживаю веб-страницу и хочу, чтобы приостановить выполнение JS обработчика oonclick элемента, где я действительно не знаю, кто является обработчиком или когда является обработчиком регистрируется.Отладка Javascript: приостановка на событии click

Есть ли что-то вроде кнопки паузы (например, в Visual Studio) в любом из отладчиков браузеров, который приостанавливает выполнение JS после запуска пользовательского события?

Благодаря

ответ

3

Да, мой личный фаворит Firebug for Firefox. На вкладке «Сценарий» вы можете нажать кнопку паузы «перерыв дальше», и вы также можете делать другие приятные вещи, такие как просмотр HTML (с помощью вкладки «HTML»), щелкните правой кнопкой мыши на селекторе и выберите один из Перерыв в изменении атрибута/добавление или удаление ребенка/удаление элемента. Я обычно использую это, когда я действительно не знаю, какой скрипт мешает моему DOM.

Единственное, что нужно иметь в виду, это то, что что-то вроде «перерыв на следующий», будет рядом с бессмысленным, если у вас есть событие на mouseover на уровне document, так как вы просто будете постоянно ломаться.

Вы также можете найти некоторые решения для finding all logged events, но я не думаю, что есть простой способ задать JavaScript, «что событие click привязано к этому элементу DOM», не вызывая его напрямую. Если вы используете jQuery, тогда это становится немного легче, как предлагает this.

1

Наряду с ответом Яна Кларка на использование Firebug, в Chrome вы можете перейти на вкладку Sources в окне инструментов разработчика (F12), а элементы управления для отладки есть.

+0

Спасибо. Действительно, теперь я увидел [другую тему] (http://stackoverflow.com/questions/16188986/how-to-debug-the-next-javascript-event-in-chrome-with-scripts-running-in-backgr) о хром. –