javascript - JS 图片预加载被阻止?

标签 javascript image lightbox blocking preload

我正在使用 JQuery Plugin called lightbox (顺便说一句,这很棒)。问题是,我正在访问外部网站上的图像,并且我认为它们阻止 lightbox 预加载它们

具体来说,我已经确认 picasa 为预加载器提供了 404(使用 firebug),但是如果我右键单击 firebug“net”选项卡中的失败请求,然后选择“在新选项卡中打开”,则图像加载正常。

来自 picasa 的任何图像都会发生这种情况,除非我已经查看过它们(在这种情况下,我相信它们是从浏览器的缓存中提取而不是再次加载)

浏览器发送的 header 与预加载器(也来自 firebug)发送的 header 之间存在一些差异:

预加载器的“Accept” header 是:

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 预加载...不知道该怎么办

最佳答案

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

关于javascript - JS 图片预加载被阻止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/951958/

相关文章:

css - 灯箱叠加位置绝对无法正常工作

javascript - 澄清 node.js + promises 片段

javascript - Uncaught ReferenceError : form is not defined

c# - 有什么方法可以将对象从后面的 c# 代码传递给 javascript?

c# - 如何在 C# 中仅读取像素数据而不是 16 位图像的元数据?

jquery - 如何使用 jquery 将删除图像/图标附加到 div 内的图像

javascript - Adipoli jQuery 图像悬停效果

javascript - 如果我在 index.html 的脚本标签中使用异步,我是否需要费心在 scripts.js 中编写异步代码?

lightbox - Featherlight 灯箱目标始终可见

jquery - 为什么灯箱 jQuery 插件对我不起作用?