您知道如何在未找到图像文件时从呈现的 HTML 页面中隐藏经典的“未找到图像”图标吗?
任何使用 JavaScript/jQuery/CSS 的工作方法?
您知道如何在未找到图像文件时从呈现的 HTML 页面中隐藏经典的“未找到图像”图标吗?
任何使用 JavaScript/jQuery/CSS 的工作方法?
<img onerror='this.style.display = "none"'>
您可以使用onerror
JavaScript 中的事件在图像加载失败时采取行动:
var img = document.getElementById("myImg");
img.onerror = function () {
this.style.display = "none";
}
在 jQuery 中(因为你问过):
$("#myImg").error(function () {
$(this).hide();
});
或者对于所有图像:
$("img").error(function () {
$(this).hide();
// or $(this).css({visibility:"hidden"});
});
如果隐藏图像可能会改变布局,您应该使用visibility: hidden
代替.hide()
。网络上的许多站点都使用默认的“无图像”图像,src
当指定的图像位置不可用时,将属性指向该图像。
我稍微修改了 Gary Willoughby 建议的解决方案,因为它简要地显示了损坏的图像图标。我的解决方案:
<img src="..." style="display: none" onload="this.style.display=''">
在我的解决方案中,图像最初是隐藏的,只有在成功加载时才会显示。它有一个缺点:用户不会看到半载的图像。如果用户禁用了 JS 那么他们将永远看不到任何图像
要隐藏每个图像错误,只需在页面底部(就在结束 body 标记之前)添加此 JavaScript:
(function() {
var allimgs = document.images;
for (var i = 0; i < allimgs.length; i++) {
allimgs[i].onerror = function() {
this.style.visibility = "hidden"; // Other elements aren't affected.
}
}
})();
回答可能有点晚了,但这是我的尝试。当我遇到同样的问题时,我通过使用图像大小的 div 并将背景图像设置为此 div 来修复它。如果未找到图像,则 div 将呈现为透明,因此无需 java 脚本代码即可静默完成所有操作。