#javascript #image #redirect
#javascript #изображение #перенаправление
Вопрос:
Как я могу сделать так, чтобы, если все изображения на странице повреждены / не существуют, javascript перенаправлял на другую страницу?
Я хочу использовать это в скрипте типа галереи изображений.
Комментарии:
1. Используя чистый javascript? Вы случайно не используете фреймворк javascript, такой как jQuery, prototype и т.д.?
2. Я бы предпочел чистый javascript, но при необходимости я мог бы использовать jQuery или другой фреймворк.
Ответ №1:
Попробуйте этот скрипт:
var imgCount = 0, imgErrorCount = 0;
function onImgError(increment) {
if(increment) {
imgErrorCount ;
}
if(imgCount > 0 amp;amp; imgCount == imgErrorCount) {
location = '/url-to-redirect';
}
}
$(function(){
imgCount = $('img').length;
onImgError(false);
});
И для каждого элемента img:
<img src="..." onerror="onImgError(true);" />
Комментарии:
1. @TheScrumMeister Неплохо, но почему бы вам не назначить
onerror
обработчик непосредственно в JS? Вот так:$('img').each(function() { $(this).get().onerror = function() { onImgError(true); };});
2.Похоже, это не сработало. Редактировать:
$(function(){
Неперехваченная ошибка ссылки: $ не определен3. @Jacob: Слишком поздно. Как только изображение вставлено в дерево DOM, оно немедленно начинает загружаться. Возможно, при попытке добавить обработчик onerror уже произошел сбой
4. Opps забыл добавить мой jquery! Виноват. Большое спасибо!
5. @jacob-relkin
$('img')
не будет включать будущие изображения, добавленные в dom, и если вы вызовете его в нижней части страницы, некоторые изображения, возможно, уже содержат ошибку.$('img').live()
похоже, что это не работает.