Как проверить загружены ли все картинки браузером
Подскажите пожалуйста мне нужно проверить загружены ли все картинки браузером с помощью javascript, желательно jQuery. Мне предлогали вариант ставить на событие onload у картинки флаг, если загрузилась, то флаг равен истине. мне такой вариант не подходит. Мне нужно просто определить все ли браузер загрузил?
|
Событие load окна документа срабатывает, когда все элементы страницы подгружены - DOM, картинки, фреймы и так далее. Может подойдет такой вариант:
$(window).bind('load', function() { /* ... */}); |
так, ага, а если у меня с помощью аякса поевляеться плавающий див, и в нем вот эти самые картинки, то пойдет, что вы предложили?
|
Нет, тогда только событие load на всех элементах img внутри дива.
|
Вариантов много. Очень много. Пример - первый вариант самый простой, но второй изящны
Вар. 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); } |
Или же вот такой геморрой:
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); |
Еже ли вопрос идет об аяксе -
как раз подойдет последний вариант от меня под названием геморрой...
|
я бы постарался избежать цикла, в котором ожидается загрузка изображений
|
для того чтобы найти пустое изображение и заменить его на стандартную картинку можно использовать следующее
$("img").error(function () { $(this).unbind("error").attr("src", "broken.gif"); }); |
Цитата:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} \.(gif|jpg|jpeg|png)$ RewriteRule .* noimage.jpg [L] таким образом если изображение не будет найдено, то отобразится заглушка noimage.jpg, которая в данном случае лежит в этой же папке где и .htaccess |
Poznakomlus,
не все пользуются апачем, да и картинка может стать недоступна по разным причинам. Тот же сервер не отдал ее до конца, или тот же сервер просто глюканул или тот же noimage.jpg не смог отдать или еще чего... Поэтому такие вещи все же делать лучше на клиенте. |
devote,
про апач это понятно. А вот с остальным не согласен. Посмотри сам на загрузку страниц при разных решениях. А также подумай как они влияют на загрузку сервера. |
Цитата:
|
Цитата:
Посмотри заголовки какие у тебя в вкладке сеть И поисковики так же ошибку будут видеть. На комбинированную проверку согласен. |
Часовой пояс GMT +3, время: 05:51. |