Я показываю кучу уменьшенных изображений, и задержка может быть очень высокой (через VPN), поэтому я отправляю все миниатюры в один файл (например, спрайт) и устанавливаю свойства фонового изображения и фоновой позиции CSS div для отображения эскизов. Проблема, с которой я столкнулась, связана с IE6 и выяснением, когда изображение загрузилось... Я использую хакерство BackgroundImageCache:
document.execCommand("BackgroundImageCache",false,true);
Чтобы проверить загрузку изображения, я использую этот код:
$('<img>').attr('src', 'ThumbSpriteTest.png').load(function() {
$('.Thumbnails').css('background-image', 'url(ThumbSpriteTest.png)');
});
Это работает в каждом браузере, который я пробовал, кроме IE6... даже с помощью кэширования он загружает изображение, запускает событие, устанавливает свойство background-image и снова загружает изображение (и мои .Thumbnail-элементы пустой, пока он перезагружается).
Мне кажется, что перехват кэша меняет поведение ссылок CSS, а не тег img. Как узнать, когда загружено фоновое изображение, не загружая его дважды? Возможно ли это в IE6?
РЕДАКТИРОВАТЬ: Использование: document.execCommand("BackgroundImageCache",true,true);
работает (с обоими параметрами как "true" ). У меня возникли проблемы с поиском любой документации по команде BackgroundImageCache и ее параметрам (я нашел множество примеров ее использования для исправления проблемы CSS, но все они используют false,true
в качестве параметров и не объясняют их).. награда по-прежнему хороша для всех, у кого есть хорошая информация/документация по команде BackgroundImageCache и ее параметры!
(Я не уверен, почему я рад найти что-то, что работает после того, как потратил столько часов из-за недостатка IE)