我已经为某些图像实现了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的服务,以便我可以检查这些内容并返回重定向到重定向URL。这工作得很好。我刚刚测试了它,它记录得很好。
但问题是当我将其上传到生产环境并且日志启动时。日志中有 200 张图像。但是其中只有 4 个真正被删除,链接不起作用。其他的都完美地工作了。
可能是什么原因造成的?
图像加载错误很难管理,因为有时错误会导致 fr 缓存问题,有些连接,其他时间是由于 404 错误。不同的浏览器以多种方式管理这些错误
恕我直言,管理图像加载错误的最佳方法是使用 jquery 的 ImagesLoaded 插件
http://imagesloaded.desandro.com/