Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как проверить загружены ли все картинки браузером (https://javascript.ru/forum/jquery/1974-kak-proverit-zagruzheny-li-vse-kartinki-brauzerom.html)

Aderba 13.10.2008 17:24

Как проверить загружены ли все картинки браузером
 
Подскажите пожалуйста мне нужно проверить загружены ли все картинки браузером с помощью javascript, желательно jQuery. Мне предлогали вариант ставить на событие onload у картинки флаг, если загрузилась, то флаг равен истине. мне такой вариант не подходит. Мне нужно просто определить все ли браузер загрузил?

Андрей Параничев 13.10.2008 17:35

Событие load окна документа срабатывает, когда все элементы страницы подгружены - DOM, картинки, фреймы и так далее. Может подойдет такой вариант:
$(window).bind('load', function() { /* ... */});

Aderba 13.10.2008 17:41

так, ага, а если у меня с помощью аякса поевляеться плавающий див, и в нем вот эти самые картинки, то пойдет, что вы предложили?

Андрей Параничев 13.10.2008 17:54

Нет, тогда только событие load на всех элементах img внутри дива.

Янв 24.04.2009 17:38

Вариантов много. Очень много. Пример - первый вариант самый простой, но второй изящны
 
Вар. 1.

var initContent = function () {
...
}

window.onload = initContent;

Вар. 2.

var ie = (navigator.appName == 'Microsoft Internet Explorer') ? true : false;

var initContent = function () {
... // Some code.
if (ie) {
window.detachEvent ('onload', initContent);
} else {
window.removeEventListener ('load', initContent, false);
}
}

if (ie) {
window.attachEvent ('onload', initContent);
} else {
window.addEventListener ('load', initContent, false);
}

Янв 24.04.2009 17:41

Или же вот такой геморрой:
 
function checkImage () {
var img = document.getElementsByTagName ('IMG');
var c = 0;
while (img[c]) {
if (!img[c].complete) return false;
}
unsetInterval (i);
... // Some initiation code.
}

var i = setInterval ('checkImage ()', 10);

Янв 24.04.2009 17:43

Еже ли вопрос идет об аяксе -
 
как раз подойдет последний вариант от меня под названием геморрой...

x-yuri 24.04.2009 20:05

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

egik 28.05.2014 12:37

для того чтобы найти пустое изображение и заменить его на стандартную картинку можно использовать следующее
$("img").error(function () {
$(this).unbind("error").attr("src", "broken.gif");
});

Vlasenko Fedor 28.05.2014 18:43

Цитата:

Сообщение от egik (Сообщение 313792)
для того чтобы найти пустое изображение и заменить его на стандартную картинку можно использовать следующее

в файл .htaccess добавляем

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} \.(gif|jpg|jpeg|png)$
RewriteRule .* noimage.jpg [L]

таким образом если изображение не будет найдено, то отобразится заглушка noimage.jpg, которая в данном случае лежит в этой же папке где и .htaccess


Часовой пояс GMT +3, время: 02:29.