检查客户端的图像存在

时间:2013-02-01 15:14:53

标签: javascript jquery file-exists

我正在开发一个图片库网站,未来可能会有数千张照片。所有图片均来自其他网站/ API或用户上传。

用户上传的图片

<img src="../images/example.jpg" alt="" />

外部图片

<img src="http://example.com/xyz.jpg" alt="" />

假设从外部网站删除了图片。有没有办法使用jQuery / JavaScript等检查客户端的照片是否存在?

我认为是

i)我从外部网站链接图像

ii)从外部网站删除图片,当网站首次加载时,jquery会使用ajax等向服务器发送死链接信息

iii)我将修复此链接。

提前致谢...

3 个答案:

答案 0 :(得分:1)

您可以在外部图像上使用“onerror”事件并创建服务器端脚本来处理错误,并在解决问题时返回通用的“未找到图像”图像。

像...一样的东西。

onerror="this.src='/fiximage.php?q='+this.src;"

答案 1 :(得分:0)

你可以这样做......

$(function() {
    $(document).on("error", "img", function() {
        // do something with $(this) here
    });
});

这会检测到损坏的图像,并允许您对其进行一些操作。

答案 2 :(得分:0)

在这种情况下,您可以使用onerror事件。

var imgs = document.getElementsByTagName("img"),
    img, i = 0;
while (img = imgs[i++]) {
    img.onerror = function() {
        // just an example for error reporting
        Ajax.send("POST /image_error.php", {src:img.src});
        // change img src
        img.src = "images/error.jpg";
    };
}