如果图像工作正常,为什么会和img onerror处理程序执行

时间:2014-12-30 13:03:47

标签: javascript html image error-handling

我已经为某些图片实现了onerror属性,以便检测我网站中缺少的图片。

这是代码:

<script>
    function imageError(element) {
        var noPicUrl = "${noPicUrl}";
        var imageFailUrl = "/site/image/fail?mediaUrl=" + encodeURIComponent(element.src) + "&redirectUrl=" + encodeURIComponent(noPicUrl);

        element.onerror = "";
        element.src = imageFailUrl;
    }
</script>

<img src="${poiPic}" onerror="imageError(this);"/>

如您所见,当图像失败时,将调用以下URL:

/site/image/fail?mediaUrl=" + encodeURIComponent(element.src) + "&redirectUrl=" + encodeURIComponent(noPicUrl)

这是一项保存失败的mediaUrl的服务,以便我可以检查这些并返回重定向到redirectUrl。这工作得很好。我只是测试了它并且它完美地记录了。

但问题是当我将其上传到生产并且日志开始时..日志中有200张图像。但其中只有4个被删除,链接无法正常工作。其他的只是完美的工作..

导致这种情况的原因是什么?

1 个答案:

答案 0 :(得分:0)

图像加载错误很难管理,因为某些时候错误发生了缓存问题,连接的东西,其他时间是由于404错误。不同的浏览器以很多方式管理这些错误

恕我直言,管理图像加载错误的最佳方法是使用jquery的ImagesLoaded插件

http://imagesloaded.desandro.com/