Строка и столбец в атрибутах события ошибки Javascript - PullRequest
4 голосов
/ 05 мая 2011

Я решил, что есть некоторые ошибки, которые я не хочу отправлять в обработчик ошибок браузера. Но я все еще хочу знать о них. В моем собственном коде у меня есть функция, которая хранит ошибки в скрытом элементе и ajax отправляет их в базу данных. Ниже приведена упрощенная версия моего блока try:

try
{
  newValueEvaled = eval(newValue);
}catch(err)
{
  alert("Error caught: Line " + err.lineNumber + ((err.columnNumber != undefined)?', Column:' + err.columnNumber:"") + '\n' + err.message);
}

Мне бы тоже понравился columnNumber. В настоящее время его там никогда нет, но каким-то образом консоль ошибок браузера имеет к нему доступ. Кто-нибудь может сказать мне, как я могу получить к нему доступ?

Ответы [ 2 ]

3 голосов
/ 29 ноября 2013

Вы можете получить доступ к строке ошибки и, возможно, столбцу, используя пользовательскую функцию обработчика ошибок:

function dumpErrors(error, file, line, column)
{
    alert('Error: ' + error + ', occurred in file: ' + file + ', on line: ' + line + ', at column: ' + (column || 'unknown'));
}
onerror = dumpErrors;

«Линия» доступна для всех браузеров. Для «колонки» кажется, что она доступна в последней версии Chrome (выпуск 30.0+), но не в Firefox (выпуск 17, работает на моем Linux).

3 голосов
/ 05 мая 2011

Я почти уверен, что невозможно получить номер столбца ошибки из JavaScript, запущенного на странице. Консоль Firebug / WebKit / консоль IE имеет доступ к внутренним объектам браузера, которые предоставляют больше информации о стеке вызовов, чем доступно для кода, выполняющегося внутри страницы.

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