Два способа решения этой проблемы:
Добавьте параметр nonce к URL-адресам вашего изображения.
var nonce = new Date().getTime();
// ...
preloadImage.src = fullImagePrefix + imageNumber + "." + IMAGES_TLA + ('?_=' + nonce++);
Установите "src""свойство в другом цикле событий.
setTimeout(function(img, src) {
img.src = src;
}(preloadImage, fullImagePrefix + imageNumber + "." + IMAGES_TLA), 1);
Используя параметр nonce каждый раз, когда вы выбираете изображение, вы обходите кеш.Возможно, это не очень хорошая идея, поэтому второй вариант позволяет обойти проблему, убедившись, что свойство "src" установлено в отдельном цикле обработки событий.Тогда сработает «нагрузка».
Здесь является примером.Код использует одноразовые значения на некоторых изображениях, но устанавливает для них «src» в обработчике тайм-аута.Как вы можете видеть, они все загружаются (становятся красными).
Я не знаю, почему IE не запускает обработчик «загрузки», когда изображение находится в кеше, но делает, когда «src»устанавливается в другом цикле событий, из которого инициализируется (иначе) объект изображения.
edit - Здесь - это та же скрипка, но измененная для пропуска времени ожидания,В IE8 вы должны заметить, что четные изображения часто не обращаются к обработчикам «загрузки».