Ответ 1
Обработчик window.onerror
хорошо работает в Chrome 13+, Firefox 6.0+, Internet Explorer 5.5+, Opera 11.60+ и Safari 5.1 +. Там уже есть fooobar.com/info/24851/..., который содержит много информации об этом.
Что касается других элементов (например, изображений), jQuery предоставляет метод .error()
для подключения обработчика событий ошибки, чтобы предупредить пользователя, когда изображение или внешний script не удается нагрузки. Если вы не можете использовать jQuery, тогда еще один вариант - предварительно загрузить все изображения/внешние ресурсы через XMLHttpRequest
и прослушать status
(код ответа HTTP) запроса (ничего, кроме 200 OK
или 304 Not Modified
это то, что вы хотите вернуть ошибку). Недостатком этого является то, что, поскольку обработчики событий и т.д. Должны быть прикреплены до того, как страница будет полностью загружена, любой, у кого отключен JavaScript, будет искать фрагментированную, возможно, пустую страницу.
Недопустимые URI и ошибки HTTP лучше всего обрабатывать на стороне сервера. Хорошо сформированный файл .htaccess
в сочетании с Apache mod_rewrite
(или эквивалент) может обеспечить много амортизации для плохих запросов на сервер.