Как установить точку останова для минимизированной функции JS в Chrome или Safari? - PullRequest
59 голосов
/ 09 сентября 2011

Я бы хотел установить точку останова в функции Cart.add в JavaScript-отладчиках Chrome или Safari.Проблема в том, что эта функция определена в большом минимизированном файле JS и не существует в отдельной строке.

В некоторых документах говорится, что отладчики на основе WebKit поддерживают команды "break" или "debug" в консоли отладки, но они, похоже, не работают в более новых версиях отладчика.

Установка точки останова для этой строки файла JS также не работает, поскольку в этой строке много функций.

Есть предложения?

Ответы [ 3 ]

156 голосов
/ 10 сентября 2011

В Chrome при открытии вкладки Scripts вы можете предварительно откорректировать выбранный файл, нажав кнопку { } («Pretty print») внизу. После этого вы можете найти свою линию и установить точку останова. После обновления страницы код останется предварительно проверенным с точками останова.

5 голосов
/ 09 сентября 2011

Выражение debugger , вероятно, то, что вы ищете.

Оценка производства DebuggerStatement может позволить реализации вызвать точку останова при запуске под отладчиком. Если отладчик отсутствует или не активен, этот оператор не имеет наблюдаемого эффекта.

Производство DebuggerStatement : debugger ; оценивается следующим образом:

  1. Если средство отладки, определенное реализацией, доступно и включено, тогда

    а. Выполните заданное реализацией действие отладки.

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

  2. прочее

    а. Пусть результат будет (обычный, пустой, пустой).

  3. Возвращаемый результат.

Оператор break предназначен для выхода из циклов и операторов switch и не имеет ничего общего с отладкой.

Реальное решение, хотя и состоит в том, чтобы не испортить ваш код. :)

0 голосов
/ 12 сентября 2011

Если вы сохранили веб-страницу, то украсьте свой js-файл, используя jsbeautifier.org, который форматирует весь сценарий.Затем замените ваш JS-контент на украшенную версию.Отсюда вы можете легко отладить JS

...