JavaScript: как загрузить все изображения в папку?

var img = new Image();
img.src = "images/myFolder/myImage.png";

Приведенное выше загрузит только myImage.png. Как загрузить все изображения myFolder?


person MaiaVictor    schedule 21.06.2012    source источник
comment
Изображения имеют случайные имена или какую-то последовательность?   -  person Yuriy Galanter    schedule 21.06.2012
comment
Они представляют собой последовательность 0.png, 1.png, но я не знаю, когда последовательность закончится в данной папке.   -  person MaiaVictor    schedule 21.06.2012


Ответы (4)


JavaScript не может напрямую обращаться к содержимому файловой системы. Сначала вам нужно будет передать содержимое, используя серверный скрипт (написанный на PHP и т. д.).

Затем, когда у вас это есть, вы можете использовать цикл в своем JavaScript, чтобы загружать их по отдельности.

person tskuzzy    schedule 21.06.2012

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

var bCheckEnabled = true;
var bFinishCheck = false;

var img;
var imgArray = new Array();
var i = 0;

var myInterval = setInterval(loadImage, 1);

function loadImage() {

    if (bFinishCheck) {
        clearInterval(myInterval);
        alert('Loaded ' + i + ' image(s)!)');
        return;
    }

    if (bCheckEnabled) {

        bCheckEnabled = false;

        img = new Image();
        img.onload = fExists;
        img.onerror = fDoesntExist;
        img.src = 'images/myFolder/' + i + '.png';

    }

}

function fExists() {
    imgArray.push(img);
    i++;
    bCheckEnabled = true;
}

function fDoesntExist() {
    bFinishCheck = true;
}
person Yuriy Galanter    schedule 21.06.2012
comment
Это может сработать, но может ли кто-нибудь сказать, как это сделать, используя цикл while или for? - person TheLinguist; 11.05.2020

Вам нужен какой-то способ получить список файлов в этой папке. Его можно либо определить вручную как массив, либо получить с помощью AJAX-запроса к сценарию на стороне сервера, который выводит список файлов для вас. В любом случае, не существует «волшебного» способа получить все изображения в папке.

person Niet the Dark Absol    schedule 21.06.2012

Если у вас есть все имена файлов в папке, вам нужно просмотреть и открыть каждое изображение по имени. Вы не можете просто загрузить всю папку напрямую, и вы не можете получить доступ к файловой системе в Javascript, чтобы получить имена, вам нужно будет передать их на страницу через что-то вроде PHP.

person peacemaker    schedule 21.06.2012