PDA

Показать полную графическую версию : [решено] Определение наличия рисунка


System Failure
14-02-2009, 00:12
Доброго времени суток!

Столкнулся со следующей проблемой...

Генерируется особым образом код - по этому коду вставляется на странице изображение. Дело в том, что требуется, если такого изображения в наличии не имеется - чтобы выполнялся альтернативный код. Как можно это организовать на JS? Заранее спасибо!

Prisoner
14-02-2009, 12:44
Приветствую.
Генерируется особым образом код - по этому коду вставляется на странице изображение. »
Вот можно об этом подробнее? Кем генерируется, кем по сгенеренному вставляется?

Не знаю, правильно ли я понимаю, но наличие или отсутствие картинки я бы определял серверными методами и генерировал бы код так:
<img src="/some/exist/image.jpg" width="X3" height="X3" alt="X3">

<img src="/some/not_exist/image.jpg" width="X3" height="X3" alt="X3" class="imageNotExist">
А вот после загрузки DOM выбирал картинки с соответствующим классом.

System Failure
14-02-2009, 14:44
в ЯваСкрипте генерируется код...
ну в общем есть определенный исходный код в шестнадцатеричном формате. в этом коде зашифрованы некоторые параметры некоего объекта... согласно этим параметрам генерируется код для картинки... к примеру 00A580F9.gif . В базе имеется большой набор таких картинок, для каждого объекта своя. но бывает что генерируется код для несуществующей картинки, которой нет в базе... временно решил проблему, тем что задал проверку на ширину картинки. если ширина картинки равна ширине значка отсутствия изображения - то выполняется альтернативный код.

пример:

table.rows[x].cells[y].innerHTML = "<img src='items/" + tnpl + itype + tipaj + nxt + ".gif' id='" + tnpl + itype + tipaj + nxt + "' onmouseout='hideInfo();' onmousemove='getCoords(event);showInfo(" + lvl + "," + g + "," + h + ")'>";

Prisoner
14-02-2009, 19:47
Ага. Ну тогда имеет смысл поиграться с обработкой событий onLoad и onError для изображения. Точнее даже именно onError:
<img src="" width="" height="" alt="" onerror="imgErrorHandler()">
Возможны проблемы с Оперой - в моем тесте событие для отсутствующего изображения срабатывало дважды.

System Failure
15-02-2009, 01:02
о, спасибо.... попробую поиграться - посмотрим что получится - обязательно отпишу рез-тат :)




© OSzone.net 2001-2012