1

我正在使用一个名为 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 预加载...不知道该怎么做

4

2 回答 2

1

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

于 2009-06-04T17:35:17.760 回答
0

解决方案

Picasa 将允许外部网站加载最多 800 像素宽的图片...如果您尝试使用大于外部域(不是 picasaweb.google.com)上的图片,您只会得到 404

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

于 2009-06-04T18:17:25.023 回答