2009-10-19 2 views
26

Каков наилучший способ настроить локальное резервное изображение, если внешнее изображение не загружается или занимает слишком много времени для загрузки.Резервное изображение и таймаут - внешний контент. Javascript

+0

Блестящий! Я как раз собирался задать тот же вопрос, и я быстро просмотрел Google и нашел этот вопрос. Я подумывал сделать это на стороне сервера, но клиентская сторона звучит намного проще. – Skilldrick

ответ

43

Вы можете добавить oneror обработчик: настройка

<img src="http://example.com/somejpg.jpg" 
    onerror='this.onerror = null; this.src="./oops.gif"' /> 

Примечание OnError в нуль в обработчике, чтобы браузер не умирает, если oops.gif не может быть загружена по какой-то причине.

+0

О, я забыл об ужасе. Это может быть проще, но решение, которое я разместил ниже, позволяет предварительно очистить изображения и проверить их доступность, прежде чем они будут отображаться. Зависит от того, что вам нужно ... – moxn

+0

Awesome! Любите это, когда я узнаю новые трюки, подобные этому. Я собирался прибегнуть к какой-нибудь jQuery jiggery pokery. – MikeMurko

+0

Проблема заключается в том, как время, по которому изображение считается недоступным! Работа загрузки браузера может занять много времени, пока он не вызовет событие 'onerror'. – SaidbakR

2

Попытайтесь использовать свойство Image.complete.

var img = new Image(w,h) 
img.src = "http://..."; 

Теперь периодически проверять, если img.complete верно и вызвать некоторый запасной механизм shuold он все еще будет false после п секунд.

Смежные вопросы