Ожидание загрузки картинки [дубликат]

865
26 ноября 2016, 09:15

На данный вопрос уже ответили:

  • Контроль порядка выдачи результатов асинхронной операции 1 ответ

Мне нужно в цикле загрузить картинку и продолжить выполнение кода. Метода wait() у картинки нет :)
что мне такое написать в onload(), чтобы выполнение цикла продолжалось только после загрузки картинки?

for(var i in images){
    var img = new Image();
    img.src = images[i];
    img.onload(тут код);
}

UPD:

вот сам объект с путями картинок

var images = {
    "image1": "screen001.PNG",
    "image2": "Снимок.PNG",
    "image3": "doctype.png"
};
Answer 1

В данном случае можно так

var images = [];
function loadImage(index) {
    var img = new Image();
    img.src = images[index];
    img.onload = function() {
        if (index + 1 < images.length) {
            loadImage(index + 1);
        }
    };
}
loadImage(0);

UPD Если images это object, то моя реализация такая

var images = {
    "image1": "screen001.PNG",
    "image2": "Снимок.PNG",
    "image3": "doctype.png"
};
var arr = getObjectKeys(images);
function getObjectKeys(o) {
    var tmp = [];
    for (var key in o) {
        tmp.push(key);
    }
    return tmp;
}
function loadImage(index) {
    var img = new Image();
    img.src = images[arr[index]];
    img.onload = function() {
        if (index + 1 < arr.length) {
            loadImage(index + 1);
        }
    };
}
loadImage(0);

Если картинка загрузится не успешно, то onload не выполнится

READ ALSO
не запускается скрипт

не запускается скрипт

не получается запустить скрипт, нужен для автоматической вставки даты, при изменение данных в ячейке:

1778
Как создать выпадающий список select, который будет менять изображение?

Как создать выпадающий список select, который будет менять изображение?

Имеется html и css кодПомогите написать JS для правильной работы скрипта, чтобы при выборе определенной опции менялась картинка

733
Цвет div блока JS

Цвет div блока JS

Цвет при нажатии CTRL+click меняется на #СССКак сделать чтобы при нажатии CTRL+click цвет менялся на #CCC если нажмешь еще раз CTRL+click то с #CCC на #DDD и так...

717