Firefox "onerror" не будет запускаться, даже если изображение недействительно - PullRequest
5 голосов
/ 15 октября 2010

У меня есть обработчик onerror на теге изображения для обработки переключения, когда удаленное изображение не найдено.

проблема в том, что для некоторых сломанных удаленных образов это не работает.

http://a3.twimg.com/profile_images/522455109/calvin-and-hobbessm_normal.jpg

<img onerror="this.src='/images/pic_not_found.png'" src="http://a3.twimg.com/profile_images/522455109/calvin-and-hobbessm_normal.jpg">

Изображение ниже: 1) когда удаленное изображение найдено, 2) удаленное изображение не найдено (ошибка не запущена), 3) удаленное изображение не найдено (ошибка включена)

alt text

1 Ответ

5 голосов
/ 15 октября 2010

Это не битая ссылка.

twimg.com фактически возвращает изображение с названием запрошенного вами URL.

просто нажмите на ссылку на изображение. Это не текст, который вы видите, это изображение.

Обновление

Вот код, который работает во всех браузерах.
Это делает некоторые основные функции обнаружения.

function handle( elem, img, state )
{
  if ((typeof(elem.onerror) === 'function' && state === 'fail') 
      || (elem.width === 0)
    )
     {
       elem.src = img;
     }
}

http://jsfiddle.net/VVcQj/1

Он использует как onload, так и onerror, но для обработки ситуации требуется функция, определенная в javascript.

...