我正在使用 jQuery插件称为Lightbox (顺便说一句)。问题是,我正在外部站点上访问图像,我认为它们是 阻止灯箱预加载.

具体来说,我已经确认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

有帮助吗?

解决方案 2

解决方案

PICASA会让外部站点加载图像宽度高达800px ...如果您尝试使用比外部域上的图像(不是picasaweb.google.com),则只需获得404

对我来说幸运的是800px足够了...我只是想加载原件,您根本不允许这样做哈哈

其他提示

您始终可以将预加载的IMG标签添加到隐藏DIV中的DOM,而不是使用JavaScript加载它们。这样,浏览器将它们“自然”加载。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top