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

以上只会加载 myImage.png。如何加载 myFolder 的所有图像?

4

4 回答 4

17

如果您的图像名称像您所说的那样是连续的,您可以为名称创建一个循环,在每次迭代时检查图像是否存在 - 如果不存在 - 打破循环:

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;
}
于 2012-06-21T18:52:42.193 回答
9

JavaScript 不能直接访问文件系统的内容。您必须首先使用服务器端脚本(用 PHP 等编写)传递内容。

然后,一旦你有了它,你就可以在你的 JavaScript 中使用一个循环来单独加载它们。

于 2012-06-21T18:17:31.770 回答
1

您需要一些方法来获取该文件夹中的文件列表。这可以手动定义为数组,也可以通过 AJAX 请求检索到为您列出文件的服务器端脚本。无论哪种方式,都没有“神奇”的方法来获取文件夹中的所有图像。

于 2012-06-21T18:17:13.160 回答
0

如果您拥有文件夹中所有文件的名称,则需要遍历并按名称打开每个图像。您不能直接加载整个文件夹,也不能在 Javascript 中访问文件系统来获取名称,您需要通过 PHP 之类的方式将它们传递给页面。

于 2012-06-21T18:18:46.657 回答