Отладка исключения jquery с помощью Firebug

Я получаю сообщение об ошибке javascript, исходная строка которого находится в библиотеке javascript jquery:

uncaught exception: Syntax error, unrecognized expression: #

Я знаю, что это за ошибка: обычно это происходит, если вы попробуете что-то вроде:

$('#');

Тем не менее, я изо всех сил пытаюсь отладить его. Это должно быть просто, если бы я мог просто получить трассировку стека. Но Firebug отказывается ни ломаться при ошибке, ни предоставлять трассировку стека.

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


person cbp    schedule 28.07.2010    source источник


Ответы (3)


Загрузите разрабатываемую версию библиотеки jQuery. В функции jQuery добавьте вызов console.log для любого переданного селектора. Когда вы получите свое исключение, список напечатанных селекторов должен позволить вам выяснить, где ваш код работает неправильно.

person Stefan Kendall    schedule 28.07.2010

Для отладки попробуйте:

console.log("#");

or

console.trace();

Он выведет трассировку стека в консоль FB.

Я думаю, проблема в том, что вы пытаетесь выбрать пустой идентификатор ("#"), который выдает ошибку. Jquery, вероятно, анализирует/ищет идентификатор "", который представляет собой пустую строку с использованием селекторов css.

person nicholasklick    schedule 28.07.2010

Вы можете попробовать использовать инструмент Javascript Stacktrace (есть даже версия букмарклета). Вы также можете попробовать отладчики, встроенные в Safari или Chrome... если, конечно, ваша проблема не связана с Firefox.

person Ken Redler    schedule 28.07.2010