У меня есть jsp с большим количеством кода javascript. Всякий раз, когда на странице появляется ошибка javascript, отображаемая в строке состояния браузера IE, номер строки, в которой сообщается об ошибке, не совпадает с номером строки, которая фактически содержит ошибку. Я делаю щелчок правой кнопкой мыши> просмотр исходного кода, чтобы найти указанный номер строки. Но в этой строке нет ошибки. Ошибка, я полагаю, в какой-то другой строчке. Что может быть причиной сообщения ошибочных номеров строк.
Internet Explorer выдает неправильный номер строки для ошибки
Ответы (5)
Как отмечалось в других ответах, IE плохо сообщает номера строк для ошибок. Однако встроенный отладчик (нажмите F12) в IE8 и более поздних версиях гораздо полезнее, поэтому я предлагаю вам попробовать это.
Я обнаружил проблему после множества попыток. Надеюсь, это будет полезно некоторым парням, столкнувшимся с этой неприятной проблемой.
RightClick> View Source - это код, который браузер видит для отображения страницы. Однако это еще не все. На странице также могут быть другие HTTP-запросы к файлам css и js. Именно это и происходило в моем случае. Ошибка была в импортированном (НЕ ВКЛЮЧЕНО; если бы он был включен, ошибка была бы в коде) js-файле. И указанный номер строки относился к этому файлу js.
Однако, оглядываясь назад, я считаю, что это правильно, поскольку импортированные файлы хранятся отдельно в кеше браузера, поскольку они являются независимыми HTTP-запросами к веб-серверу. И, следовательно, не должен появляться в RightClick> View Source code.
ПОТЕНЦИАЛЬНАЯ ПРОБЛЕМА: Однако, хотя в моем случае номер строки в отдельном сообщенном js-файле оказался правильным, это не всегда может быть правдой. В большинстве корпоративных приложений js и css es часто уменьшаются, чтобы уменьшить объем памяти в байтах. Следовательно, файл js, который вы, возможно, просматриваете в своей среде IDE, не будет таким, каким его видит браузер. Следовательно, номера строк могут быть другими. Номера строк будут соответствовать сжатой версии файла, которую видит браузер.
ОТЛАДКА JAVASCRIPT IE: Я нашел эту страницу, которая обещает предложить среду отладчика (хотя и не сложную) в среде IE.
http://jonathanboutelle.com/2006/01/16/how-to-debug-javascript-in-internet-explorer/ Я не пробовал, так как у меня не установлен полный пакет Office.
Internet Explorer ужасно плохо сообщает номера строк Javascript - обычно указывается номер строки, где начинается тег Javascript <script>
в файле HTML, а не номер строки местоположения в файле Javascript. Полагайтесь только на «Сообщение об ошибке», номер строки ничего не стоит в IE.
Используйте другой браузер, например Firefox с установленным расширением Firebug или Google Chrome, в котором он встроен в Web Inspector, что тоже здорово.
Вот хорошая статья
Отладка JavaScript: сообщения об ошибках JavaScript
В частности, номер строки оказывается гораздо менее полезным, чем вы могли ожидать. Браузеры различаются по способу определения номера строки и, таким образом, не могут достоверно сообщить правильный номер строки, в которой произошла ошибка, по отношению к исходному коду. Internet Explorer, например, сообщает номер строки по отношению к внутреннему рендерингу браузера источника документа, который может совпадать, а может и не совпадать с исходным файлом! Firefox сообщает место ошибки более надежно, сообщая файл сценария, в котором произошла ошибка, где это применимо. Однако Firefox не предоставит вам подробную информацию об элементе, вызвавшем ошибку, известном как «вызывающий». Эта информация, которая может быть полезна для быстрого поиска причины ошибки, в настоящее время предоставляется только Internet Explorer.
Если вы хотите узнать точную причину и место ошибки, а также если вы хотите выполнить обширную отладку javascript, я бы порекомендовал вам использовать FireBug.