Замена незагрузившейся картинки на другую

Тема в разделе "PHP", создана пользователем Fus-Sheva, 6 май 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Fus-Sheva

    Fus-Sheva Постоялец

    Регистр.:
    19 фев 2007
    Сообщения:
    68
    Симпатии:
    9
    Если на своем сайте вы размещаете графические изображения с других серверов, (например баннер) то вам скорее всего известны случаи, когда некоторые чужие сервера не работают, и вместо картинки вы видите пустую рамку с крестиком или оборванным листком. Это сильно портит внешний вид страницы. Данный скрипт заменяет незагружающуюся картинку на какую-то другую, которая например сообщает пользователю, что такой-то сервер не работает.

    Ссылка может выглядеть примерно так:

    Код:
    <img src="АДРЕС БАННЕРА С ДРУГОГО СЕРВЕРА" onError="this.src='АДРЕС КАРТИНКИ ПРИ ОШИБКЕ ЗАГРУЗКИ'" height=31 width=88>
    И не забудьте в тэге IMG указать размеры изображения, иначе в некоторых браузерах картинки будут искривленными.
    Кстати, в свое время я использовал этот фокус для сообщения игрокам о состоянии игрового сервера (работает или нет) :)
     
    Skie нравится это.
  2. Flake

    Flake Постоялец

    Регистр.:
    11 май 2007
    Сообщения:
    80
    Симпатии:
    6
    Спасибо.
    Ещё таким макаром можно редирект впихивать :)
     
  3. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    На самом деле лучше заранее выставить setTimeout(), а на загружаемую картинку (или ифрейм) повесить событие onLoad, которое будет делать clearTimeout().

    Таким образом если за определенное время картинка не загрузилась - вызовется по таймауту функция, которая может как-то исправить ситуацию.

    И почему эта тема в разделе "PHP" ?
     
  4. KEPZ

    KEPZ Создатель

    Регистр.:
    6 май 2008
    Сообщения:
    36
    Симпатии:
    3
    точно не помню..
    можно создать таблицу с
    <td background="null.gif"><img src="pic.gif"></td>
    и тогда если не загрузится картинка - появится бэкграунд с твоей картинкой.
     
  5. skif_s

    skif_s Постоялец

    Регистр.:
    19 дек 2006
    Сообщения:
    107
    Симпатии:
    27
    а событие onError всеми браузерами поддерживается?

    KEPZ, ну это опять же от браузера зависит. Некоторые будут показывать крестик, который будет загораживать бэкграунд.

    PS. да, php тут не причем, кстати
     
  6. spamkit

    spamkit Создатель

    Регистр.:
    21 ноя 2007
    Сообщения:
    25
    Симпатии:
    2
    Полагаю, что есть и такой метод: после загрузки страницы запускать javascript читающий список элементов страницы и проверяющий состояние элементов img. Для элементов с незагруженными картинками выполнять экшн по переназначению урла на другой сервер.
     
  7. Fus-Sheva

    Fus-Sheva Постоялец

    Регистр.:
    19 фев 2007
    Сообщения:
    68
    Симпатии:
    9
    1. Писал PHP скриптик, и походу понадобилась работа с подгрузкой картинок.
    2. А где мне создавать тему по этому поводу? :)
     
  8. dee_motard

    dee_motard

    Регистр.:
    26 июл 2008
    Сообщения:
    247
    Симпатии:
    76
    достаточно прописать alt=' ' и крестика не будет.. :)
     
Статус темы:
Закрыта.