Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не отрабатывает обработчик ошибок изображений 
:(
    Опции темы
Royan
Дата 15.4.2007, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Dreamer
***


Профиль
Группа: Участник Клуба
Сообщений: 1708
Регистрация: 14.9.2002
Где: Лондон

Репутация: 1
Всего: 15



Идея такая. Есть изображения в формате pic1.png, pin2.png ... picN.png
Задача: сделать предварительную загрузку этих ихображений
Проблема: Не отрабатывает обработчик ошибок загрузки изображений (? возможно он и не должен ?)
Вот код.
Код

        ImageLoader.prototype.loadImages = function() {    
            // Create new image object
            var imageObject = new Image();

            // Setup error handler
            imageObject.onerror = ImageLoader.prototype.handleImageLoadError;
            
            var i = 1;
            while (!this.errorOccured) {
                imageObject.src = this.imagePrefix + i + this.imagePostFix;
                //alert(imageObject);
                ++i;
                if(i > this.MAX_IMAGE_COUNT) {//avoid endless loop
                    break;
                }
            }
        }

        ImageLoader.prototype.handleImageLoadError = function() {
            this.errorOccured = true;
            alert("imgerror")
        }

Я думал, что как только объекту типа Image в качестве атрибута подсунуть не существующий путь к файлу изображения будет вызван обработчик ошибок, но это не произошло. Почему?





--------------------
Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь
PM MAIL MSN   Вверх
butionok
Дата 15.4.2007, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 19.1.2005

Репутация: 1
Всего: 3



Оно так и происходит. Что касается контроля за загрузкой картинки только у IE это худо-бедно имеется в виде свойства readyState и события onreadystatechange. Только если файл не нашёлся оно так и будет иметь значение  uninitialized. У альтернативных броузеров и того хуже. Никаких onerror нет. Как случится таймаут броузер покажет пустую рамку вместо картинки. Можно только самому написать функцию, которая, если не произошло событие onload, через определённое время определяла незагруженный файл в категорию несуществующих и делала что-то дальше. И причину (отсутствие файла, медленный коннект...) по которой файл не загрузился за определённое время не удастся установить никогда.
--------------------
Ненавижу убогую Оперу.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1462 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.