Спасибо за предложения @Pointy. Просто обратите внимание, что задержка в 1 не рекомендуется Mozilla, так что следите за этим (Минимальная задержка, DOM_MIN_TIMEOUT_VALUE, составляет 4 мс (хранится в предпочтении в Firefox: dom.min_timeout_value), с DOM_CLAMP_TIMEOUT_NESTING_LEVEL 5 мс.) Вы хотели использовать замыкание в качестве первого аргумента в setTimeout ()?

ТИРОВАТЬ: я изменил название, потому что проблема не имеет ничего общего с IE image.load () стрельба - мой substr () не работал (см. Принятый ответ).

Существует масса сообщений о том, что вы должны определить свой обработчик загрузки перед назначением img.src, чтобы гарантировать, что обработчик загрузки загружен в случае, если изображение сначала загружается из кэша.

Это не является проблемой в моем коде, поскольку именно это я и сделал.

Обратите внимание, что этот скрипт работает во всех других браузерах, но IE 8 и ниже не запускает встроенную функцию onload.

var i = lastSlideIndex || 1;

while(imagesQueued < MAX_IMAGES){
    var preloadImage = new Image();
    preloadImage.arrayIndex = i;
    preloadImage.onload = function(eventObj){
        debug('Image ' + this.src + ' loaded.');
        slideshowImages[this.arrayIndex] = this;
        if (this.arrayIndex > lastImageIndex) lastImageIndex = this.arrayIndex;
        triggerSlideshow(this.arrayIndex);
    }

    // add leading zeros
    var leadingZeros = "0000000".substr(-(String(MAX_IMAGES).length));
    imageNumber = leadingZeros.substr(String(i).length) + i;

    debug('preloading Image #' + imageNumber);
    preloadImage.src = fullImagePrefix + imageNumber + "." + IMAGES_TLA;

    if (++i > MAX_IMAGES) i = 1;
    imagesQueued++;
}

Любые другие предложения будут высоко оценены!

Ответы на вопрос(3)

Ваш ответ на вопрос