JS Image Предварительная загрузка заблокирована? - PullRequest
1 голос
/ 04 июня 2009

Я использую плагин JQuery, называемый лайтбокс (что здорово). Проблема в том, что я получаю доступ к изображениям на внешних сайтах и ​​думаю, что они блокируют лайтбокс от их предварительной загрузки .

В частности, я подтвердил, что Picasa дает предварительному загрузчику 404 (с использованием firebug), но если я щелкну правой кнопкой мыши на неудавшемся запросе на вкладке firebug "net" и "Open in new tab", изображение загружается нормально.

Это происходит с любыми изображениями из Picasa, если только я их не просматривал (в этом случае я считаю, что они извлекаются из кэша браузера, а не загружаются снова)

Существует несколько различий между заголовками, отправляемыми браузером и прелоадером (также из firebug):

заголовок прелоадера «Принять»:

image/png,image/*;q=0.8,*/*;q=0.5

против загрузки изображения непосредственно в браузер:

text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Я подозреваю, что это один из способов, которым удаленный сервер может отличить запрос браузера от javascript. Что ты думаешь?

Кроме того, вот код прелоадера из плагина ... на всякий случай

// Image preload process
var objImagePreloader = new Image();
objImagePreloader.onload = function() {
    $('#lightbox-image').attr('src',settings.imageArray[settings.activeImage][0]);
    // Perfomance an effect in the image container resizing it
    _resize_container_image_box(objImagePreloader.width,objImagePreloader.height);
    //  clear onLoad, IE behaves irratically with animated gifs otherwise
    objImagePreloader.onload=function(){};
};
objImagePreloader.src = settings.imageArray[settings.activeImage][0];

обновление

очевидно, что Picasa вообще не позволяет мне отображать полноразмерные изображения, будь то часть DOM или предварительно загруженная через javascript ... не знаю, что с этим делать

Ответы [ 2 ]

1 голос
/ 04 июня 2009

Вы всегда можете добавить предварительно загруженные теги IMG в DOM в скрытом DIV вместо загрузки их с помощью JavaScript. Таким образом, браузер загружает их «естественно».

0 голосов
/ 04 июня 2009

решение

Picasa позволит внешним сайтам загружать изображения шириной до 800 пикселей ... если вы попытаетесь использовать изображение, которое больше, чем на внешнем домене (не picasaweb.google.com), вы просто получите 404

к счастью для меня 800px - это много ... Я просто пытался загрузить оригиналы, что вам вообще запрещено делать, ха-ха

...