我正在使用一个名为 lightbox 的 JQuery 插件(顺便说一句,这很棒)。问题是,我正在访问外部站点上的图像,我认为它们阻止了灯箱预加载它们。
具体来说,我已经确认 picasa 为预加载器提供了 404(使用 firebug),但是如果我右键单击 firebug“net”选项卡中失败的请求,并且“在新选项卡中打开”图像加载正常。
来自 picasa 的任何图像都会发生这种情况,除非我已经查看过它们(在这种情况下,我相信它们是从浏览器的缓存中提取的,而不是再次加载它们)
浏览器发送的标头与预加载器(也来自 firebug)之间存在一些差异:
预加载器的“接受”标头是:
image/png,image/*;q=0.8,*/*;q=0.5
vs 直接在浏览器中加载图片:
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 预加载...不知道该怎么做