Если я правильно вас понимаю, вы пытаетесь предварительно загрузить изображение с помощью оболочки jQuery XMLHttpRequest (load()
). Это ... вряд ли будет хорошо работать .
То, что вы видите, это IE, пытающийся интерпретировать двоичные данные изображения как текст (с предсказуемо плохими результатами), jQuery, пытающийся вставить их в ваш элемент <img>
, и IE, пытающийся отобразить их. Хотя это, вероятно, удается предварительно кэшировать изображение, это неправильный инструмент для работы ... и, как вы уже продемонстрировали, инструмент, который может терпеть неудачу .
К счастью, есть более простые способы. Большинство браузеров предоставляют встроенную поддержку для загрузки изображений и уведомления скрипта об их загрузке. Например:
$('<img />') // detached image, used to pre-load
.attr('src', 'http://img.jpg') // tell it which image to load
.load(function() // attach a callback to inform us when it's loaded
{
// within the callback, "this" refers to the temporary image element
// that has just finished loading its source
// now that the image is in the cache,
$(trainFull[0])
.attr('src', this.src) // let our on-page image display it
.fadeIn(400); // and show that
});
Если вы хотите больше узнать об этом, я рекомендую начать с: jQuery ajax images preload .