Firebug - точка останова не попадает - PullRequest
38 голосов
/ 16 марта 2009

Я устанавливаю точки останова во внешнем файле JS, и я не смог добиться, чтобы Firebug последовательно достиг точки останова. Иногда это работает, но в большинстве случаев это не так. Единственный способ заставить его работать, это включить "Break on all errors"

Я использовал отладчик; Заявление также без всякой удачи.

Ответы [ 11 ]

15 голосов
/ 16 марта 2009

Если номера строк не зеленые, похоже, что Firebug не может отладить эту часть кода, потому что он выходит за рамки. Итак, если вы используете что-то вроде $ (function () {...}); Firebug не сможет получить доступ к функциям и переменным.

Это имеет смысл?

Также возможно, что какая-то другая функция или что-то переопределяет ту, которую вы пытаетесь отладить. Это даже возможно, если вы включаете один и тот же файл JS дважды.

Надеюсь, это поможет.

6 голосов
/ 13 августа 2009

Я столкнулся с этой проблемой при попытке отладки страниц внутри фреймов с помощью Firebug 1.4. Выбор «Показать только этот фрейм» или «Открыть фрейм в новой вкладке» в контекстном меню «Этот фрейм» с последующим обновлением страницы, кажется, делает сценарии отлаживаемыми.

6 голосов
/ 17 марта 2009

Я тоже часто сталкиваюсь с этой проблемой. Я обнаружил, что открытие вкладки, кажется, помогает (точки останова не потеряны). Но «Взлом на все ошибки» выглядит наиболее надежным способом взлома.

Мне редко нужно что-то хорошее в IE, но в этом случае все получается правильно. Отладка JavaScript в VS просто работает. Он без проблем попадает в точки останова («отладчик») и останавливает выполнение всего остального кода JavaScript на странице. Поэтому я использую его в качестве резервной копии довольно часто.

6 голосов
/ 16 марта 2009

Показывает ли Firebug код на вкладке «Сценарий» с зелеными номерами строк? Это указывает на отлаживаемые строки кода.

Я испытывал этот симптом, когда ни один из номеров строк не был зеленым время от времени. Я обновляю страницу и волшебным образом они снова становятся зелеными.

3 голосов
/ 12 августа 2014

У меня тоже была эта проблема периодически. Я выбрал «отключить все точки останова» и «включить все точки останова» из выпадающего списка, и он начал работать.

3 голосов
/ 26 августа 2009

Показывает ли вкладка «Консоль» в Firebug ошибки для любого другого вашего JavaScript? Я обнаружил, что если ошибки JavaScript существуют для кода до точки останова отладки, то она никогда не достигнет этой строки кода до тех пор, пока не будет исправлена ​​предыдущая (-ые) ошибка.

2 голосов
/ 09 октября 2012

Я потратил на это 1 час.

У меня был тег <script>, подобный этому:

<!-- jQuery Validate -->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript">

Можете ли вы определить проблему?

Ну, мне потребовалось все это время, чтобы определить это. Отсутствует / для закрытия тега <script>.

<!-- jQuery Validate -->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript" />

Это наверняка из-за некоторого копирования / вставки, а затем из-за попытки изменить код ... Я просто дурак в этом случае! :)

После добавления / я смог заставить точки останова работать в Firebug. Это имеет смысл.

Наконец-то я вижу эти благословенные зеленые цифры.

0 голосов
/ 03 мая 2016

У меня тоже была эта проблема. Возможно, связано с ответом KIT-Inwi ... Но я генерировал случайные строки с использованием PHP при каждой загрузке страницы.

Firebug, кажется, запоминает номер строки всей HTML-страницы для установки точки останова, а не обязательно строки Javascript, что означает, что номер строки, на котором вы ставите точку останова на этой странице, загружается не обязательно будет такой же строкой кода при следующей загрузке, поэтому точка останова будет «прыгать».

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

0 голосов
/ 09 марта 2015

Та же проблема с FF 36 и FB 2.0.8: в консоли нет ошибок, код работает нормально, но FB отображает HTML вместо JS, останавливается на точке останова debugger, но показывает ее на некоторой случайной строке HTML, но не остановитесь на обычных остановках.

Я решил это путем извлечения JS со страницы и перемещения его в собственный файл JS.

Но была одна загвоздка: когда скрипт находился в своем собственном JS-файле, я не мог заставить "глобальные" переменные работать в FF (работал нормально в IE независимо от того, где находится код), даже используя window.varName синтаксис. Таким образом, отладка в FB из отдельного файла закончилась, но была возвращена для встроенного производства.

0 голосов
/ 23 февраля 2015

Для меня это сработало после того, как я удалил каждые document.write() звонки.

...