jQuery: Выявление ошибки 404 при загрузке изображения, можно ли это сделать?

Я в основном перебираю несколько URL-адресов видео YouTube, чтобы получить id каждого видео код.

Затем я повторяю все «эскизы» в списке и заменяю источник на URL-адрес эскиза видео на YouTube.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что если видео было удалено с YouTube, полученный источник изображения не вернет действующий URL-адрес изображения, однако замена все еще запускается, поэтому URL-адрес неработающего изображения помещается в список.

Как я могу заставить jQuery определять, действительно ли URL-адрес все еще работает, прежде чем заменять исходный источник изображения на источник миниатюр?

Вот мой код, который просматривает клипы YouTube на странице и фильтрует их идентификаторы:

function generateYoutubeThumbnails() {
    var YTT = {};
    YTT.videos = $('.video-thumbnail'); // the placeholder thumbnail image

    YTT.videos.each(function(i) {
        YTT.url = $(this).attr('data-videourl'); // the youtube full url, eg: http://www.youtube.com/watch?v=F52dx9Z0L5k
        YTT.videoId = YTT.url.replace(/(.+?)watch\?v=/gi,'').replace(/\&(.+)$/gi,''); // find and replace to get just the id: eg: F52dx9Z0L5k

        YTT.snip = 'http://img.youtube.com/vi/'+ YTT.videoId +'/hqdefault.jpg'; // the thumbnail url which would return: http://img.youtube.com/vi/F52dx9Z0L5k/hqdefault.jpg in this case.

        $(this).attr('src', YTT.snip); // replace the placeholder thumbnail with the proper youtube thumbnail that we got above
    });
}
generateYoutubeThumbnails();

​​Есть идеи, как остановить поиск и замену на последнем шаге, если полученный URL не работает?

7
задан alex 12 February 2013 в 00:27
поделиться