Получение дополнительной информации из обработчика событий ошибок JavaScript - PullRequest
0 голосов
/ 15 июня 2011

Я сделал простой просмотрщик всплывающих изображений. Вы можете увидеть демонстрационную страницу для этого здесь:
http://caerphoto.com/quickslide/

и фактический JS здесь:
http://caerphoto.com/quickslide/quickslide.js

Я пытаюсь добавить полезный обработчик ошибок к объекту изображения, созданному в функции setPopup() (строка 169 или около того), но это оказывается трудным. Регистрация обработчика работает нормально, и когда что-то идет не так, обработчик срабатывает.

Проблема в том, что неважные вещи, такие как «неправильный MIME-тип», считаются ошибками, по крайней мере, в Windows (кажется, нормально в OS X, в Chrome и FF4), поэтому сообщение об ошибке появляется каждый раз, даже если загруженное изображение просто хорошо.

Есть ли какой-нибудь способ определить, какая была настоящая ошибка, чтобы я мог отфильтровать важные (например, 404) и ответить соответствующим образом? Чтобы уточнить, я спрашиваю об обработке событие ошибки , не исключение JavaScript.

Я попытался проверить объект ошибки, переданный обработчику, но, похоже, он не содержит никакой полезной информации.


редактирование:

Похоже, я ошибся в причине ошибки - выясняется, что эта строка вызывала ее:

popupImg.src = "";

Однако вопрос остается в силе - было бы полезно точно знать, что пошло не так.

1 Ответ

0 голосов
/ 15 июня 2011

Вы смотрели на объект ошибки в браузере Mozilla? Вы всегда можете обернуть вещи в блоки try...catch ( docs ), чтобы увидеть детали вашего исключения, которые предоставляют довольно мало информации.

try {
 var t = a.notexists + b.thisisnotreal;
} catch (e) {
 /* do something with the error */
}

Объект ошибки имеет ограниченную полезность с IE, вы получаете некоторые нестандартные вещи, но это на самом деле не приносит вам никакой пользы. В Mozilla есть несколько нестандартных свойств, о которых стоит упомянуть, в частности stack и lineNumber - наиболее полезных для отладки.

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