Могу ли я указать отладчику сценариев Chrome игнорировать jquery.js?

98

Есть ли способ сообщить отладчику Chrome (или, возможно, Firebug?), Чтобы он не ломался в определенных файлах? Предположить, что они не сломаны? Это похоже на то, что они могут встроить.

Джош Шульц
источник
3
Это было бы особенно полезно для меня в контексте событий jquery. Когда событие запускается, вам нужно пройти через много грязи, чтобы выяснить, какие обработчики вызываются.
tofarr
Похоже, вы должны отметить jfriend00 как ответ. Я не мог найти причину такого раздражающего поведения, и его ответ решил ее.
OrPaz
@OrPaz Я не согласен, моя проблема (и мое понимание проблемы Джоша) в том, что мы отлаживаем наш файл, однако это не означает, что генерируется исключение. Я предполагаю, что проблема заключается в моем коде, а не в jQuery, поэтому я никогда не хочу отлаживать jQuery. Я думаю об этом как об атрибуте DebuggerHiddenAttribute в .NET
Натан Куп
Я проголосовал за ответ jfriend00, потому что он может быть ценным для людей, которые сталкиваются с этим вопросом, но я не отметил его как правильный ответ, потому что Натан Куп прав, это не решает мою проблему.
Джош Шульц

Ответы:

47

Blackboxing JS-файлы теперь возможны в Firefox https://developer.mozilla.org/en-US/docs/Tools/Debugger

И в Chrome Canary с помощью инструментов Experimental Dev. http://www.divshot.com/blog/tips-and-tricks/ignoring-library-code- while-debugging-in-chrome/

Обновить . В Chrome ст. 75 есть separabe вкладка blackboxing .

Вышеупомянутое теперь работает и в стабильной сборке Chrome.

Нирмал Патель
источник
7
Blackboxing, похоже, не заставляет отладчик пропускать файл. Он по-прежнему будет проходить через вызовы своих функций ... Было бы неплохо полностью игнорировать файл.
Антонио Брандао
4
В этом суть «черного ящика» - запускать код, не видя его содержимого.
дийневала
1
Это не черный ящик, когда вы просто не просматриваете другие библиотеки, не то, что они не существуют или не используются.
джонни
обновленная ссылка для firefox: developer.mozilla.org/en-US/docs/Tools/Debugger/How_to/…
pcarvalho
31

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

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

The_Black_Smurf
источник
2
очень Чистое решение Никаких плагинов не требуется.
Джордж Ботрос
3
К сожалению, больше не работает. Если у вас установлен флажок «Пауза при обнаружении исключений», а затем черный ящик jQuery, он все равно будет прерываться при исключениях.
blackmamba
15

Если проблема заключается в том, что отладчик Chrome останавливается для всех исключений, даже тех, которые находятся внутри jQuery, вам может потребоваться указать Chrome, чтобы он приостанавливал только неперехваченные исключения, а не все исключения. На панели «Сценарий» отладчика в нижнем левом углу окна есть значок, который управляет этим.

jfriend00
источник
Спас меня этим! Спасибо! (+1)
OrPaz
12

В Chrome откройте Инструменты разработчика, затем перейдите в Настройки, и вы увидите вкладку Blackbox :

Черный ящик Chrome

В FireFox это еще проще, просто нажмите на Глаз внизу файла:

Черный ящик FireFox

sMyles
источник
Ты только что сделал мою жизнь раем! Спасибо!
Не знаю
7
  1. Перейдите в настройки инструментов разработчика и нажмите вкладку Balckboxing на левой панели.
  2. Затем нажмите кнопку «Добавить шаблон» и введите jquery.js.
  3. Закройте и снова откройте инструменты разработчика, теперь они пропущены!
Махмуд Асади
источник
2

Если отладчик взрывается где-то в файлах jQuery, вы потенциально можете заключить подозрительные вызовы в команду try / catch, а затем выдать ошибку самостоятельно catch. Таким образом, вы можете точно определить, в чем именно вы ошиблись.

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

Келли Саттон
источник