Uncaught TypeError: Невозможно прочитать свойство 'length' из неопределенного - PullRequest
8 голосов
/ 14 июня 2010

У меня есть плагин, который имеет доступ к свойству length для многих элементов.Тем не менее, консоль javascript указывает на строку 12 файла jquery.min.js.

Как я могу найти обратную линию, чтобы найти ошибочную строку в моем плагине?

Ответы [ 5 ]

6 голосов
/ 28 июля 2010

Если вы используете минимизированные сценарии, любой отладчик (например, самый лучший firebug) покажет вам ту же проблемную строку, и эта информация бесполезна (минимизированные сценарии трудно читать и понимать, и они записаны в 1 строку).

Несколько способов решения таких проблем:

  1. Как я уже говорил: для разработки используйте не минимизированные сценарии, отладчик покажет вам строку, которая что-то значит, и вы, если вам повезет, сможете найтиочень полезные комментарии разработчиков.
  2. Если вы не можете найти полную версию скрипта, используйте такой унификатор: http://jsbeautifier.org/ (вставьте минимизированный скрипт и нажмите кнопку ниже).Добавьте в ваш проект uminified script и снова запустите некорректную функцию.Отладчик снова покажет вам строку, но на этот раз вы увидите реальную логическую строку, и вы сможете понять, в чем проблема в большинстве случаев.
  3. Отладчик покажет вам, какой сценарий вызывает проблему.Проверьте, есть ли какие-либо новые версии этого скрипта.Однажды у меня возникла та же проблема, я нашел строку уменьшенного скрипта, имя плагина (несколько строк выше в авторских правах), а затем обнаружил, что доступна новая версия.Изучил журнал изменений, и там было: « Добавлено несколько« проверок работоспособности »по всему коду для потенциальных неизвестных значений атрибута » - headshot :) Обновлен скрипт, и теперь все было в порядке без специальной отладки, занимающей часы.1015 * Google ваша ошибка с именем скрипта - это помогло мне много раз .. Возможно, вы сделали это, но, возможно, вы не пробовали с речевыми отметками "" - Google вернет страницы с точной фразой в тексте.
4 голосов
/ 14 июня 2010

Как я могу найти обратную строку в моем плагине?

firebug - отличный способ отладить эти ошибки.

альтернативный текст http://blog.getfirebug.com/wp-content/uploads/2010/05/disable-debugger-keyword.png

1 голос
/ 30 июля 2013

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

Если вы используете jQuery (или любую платформу JavaScript) для обработки результатов запросов AJAX, ошибки форматирования и обработки являются дополнительными и часто игнорируются.

1 голос
/ 22 марта 2013

Если вы используете Chrome, вы можете использовать встроенные инструменты разработчика (которые я предпочитаю Firebug), перейдя на "View > Developer > Developer Tools".Ошибка в консоли часто будет иметь небольшую стрелку, указывающую вправо, перед которой при нажатии будет отображаться более подробная информация об ошибке.

Ошибки Javascript, скорее всего, не возникают в библиотеке, но вместо этого код, который ссылается на методы / функции в этой библиотеке, поэтому вы хотите просмотреть все строки проблем, перечисленные в правой части консоли,выберите строку, соответствующую написанному вами коду, где будет ваша проблема.

Вы вряд ли узнаете, в чем ваша проблема, просмотрев исходный код jQuery.Проблема в вашем коде.Просто jQuery не может использовать неопределенные переменные, которые вы передаете ему.

0 голосов
/ 30 июля 2013

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

...