2013-02-07 55 views
4

有关于使用上的图像.error(),以确定是否存在,他们并添加占位符,如果他们不上堆了几个解决方案,但他们都讨论其使用严格依据<img>标签。有没有人进行图像这种类型的验证未添加到<img>标签,而是作为div的背景?检查是否将其添加为背景图像之前的图像存在

我们有一组从第三方API进来的图像,并存在以下情况:整个组返回不存在图像的URL的。验证一组图像(注定是背景图像)以确定它们是否存在,然后在验证失败时应用适当的占位符,会有什么合适的方法?

回答

21

有几个方法可以做到这一点:

使用Ajax:

$.ajax({ 
    url: "image.jpg", 
    type: "HEAD", 
    error: function() { alert("no image"); } 
}); 

使用JavaScript图像对象:

var image = new Image(); 
image.src = "image.jpg"; 
if (image.width == 0) { 
    alert("no image"); 
} 
+1

您提供的JS解决方案是完美的。我不能相信我没想到的新的图像()obj的。我把你上面的东西添加到一个函数中。如果有人想引用上面的解决方案,我已经使用上面的方法创建了一个小提琴:http://jsfiddle.net/xHa7r/。感谢您及时的回复! – spez86

+0

多么愉快! –

+0

不客气=) – lolol

1

使用jQuery:$("<img src='[path]'>").load(function(){ [image exists!] });对于具有每个元素的background-image

我们已经实现的解决方案是创建一个中介服务器端脚本,用于检查第三方API是否存在给定图像 - 如果是,则提供图像(如果没有)提供占位符。通过这种方式,图像总是被提供+增加了图像缓存/调整大小的附加功能。

另一种解决方案是,如果图像存在实际上不检查 - 你可以提供图像占位符使用CSS,如果你通过JavaScript添加背景图片的话,如果它存在,它会覆盖现有的规则。

相关问题