Нужно найти фактическое местоположение строки / символа в ошибках скрипта Internet Explorer? - PullRequest
13 голосов
/ 02 октября 2009

Я получаю сообщение об ошибке скрипта в IE:

Линия: 59 Char: 71 Ошибка: ожидаемый идентификатор, строка или номер Код: 0

Строка 59, символ 71 не соответствует моему коду. В нем даже не указано, какой файл, но я посмотрел свой основной файл javascript, просмотр источника страницы и т. Д.

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

У кого-нибудь есть информация о том, как узнать, что на самом деле означают эти цифры, и увидеть строку кода, которая вызывает проблему?

Ценю любую помощь!

Ответы [ 4 ]

17 голосов
/ 02 октября 2009

Я обнаружил, что IE Line # / Char # бесполезен или доставляет больше хлопот, чем стоит.

Если вы включаете несколько файлов javascript и все, что вам дает, это строка # и символ #, много работы для объединения всех сценариев вместе, чтобы выяснить, где ошибка.

Если я могу найти ошибку в Firefox с помощью Firebug, то это самый простой способ. Если проблема только в IE, то я включаю отладку сценариев в окне «Свойства обозревателя»,

  1. Перейдите в Инструменты-> Свойства обозревателя ... -> Дополнительно-> Отключить отладку скриптов (Internet Explorer)
  2. Перейдите в Инструменты-> Свойства обозревателя ... -> Дополнительно-> Отключить отладку сценариев (другое)

    затем подключите Visual Studio Debugger при возникновении ошибки.

Если вы используете IE 8, установите панель инструментов разработчика , поскольку она имеет встроенный отладчик.

Если вы действительно не хотите использовать отладчик и просто просматриваете источник и получаете строку #, вы можете попробовать View -> Original Source на панели инструментов IE Developper.

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

var obj = { 
a: 1, 
b: 2,
}

Или присвоение имени переменной с зарезервированным ключевым словом, например, "класс", который меня много раз сжигал. Вот список зарезервированных ключевых слов

3 голосов
/ 02 октября 2009

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

Если вы получаете сообщение об ошибке, то встроенные средства разработчика очень хорошо помогают точно определить, где возникают проблемы в Javascript.

0 голосов
/ 02 октября 2009

Почему, используйте IE7 или IE8 с включенными инструментами веб-разработчика. И когда у вас есть ошибка JS, он спросит вас, хотите ли вы отладить это, вы скажете «да, я хочу», и он откроет хороший отладчик, точно в проблемной строке. К сожалению, я нахожусь на Linux, и я не могу дать вам экран печати, чтобы показать вам, как включить это.

0 голосов
/ 02 октября 2009

Браузеры различаются по определению номера строки и, таким образом, не могут достоверно сообщить правильный номер строки, в которой произошла ошибка, относительно исходного кода. Например, Internet Explorer сообщает номер строки относительно собственной внутренней визуализации в браузере источника документа, который может совпадать или не совпадать с исходным файлом. Firefox сообщает о местонахождении ошибки более надежно, сообщая файлу сценария, что ошибка произошла, где это применимо.

Номера строк могут помочь вам определить общее место в сценарии, где все пошло не так. Вы можете скопировать исходный документ и вставить его в текстовый редактор с нумерацией строк, например Textpad. Кроме того, вы можете установить редактор HTML по умолчанию на вкладке Программы диалогового окна Свойства обозревателя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...