html - 无法让 LazyLoad 和 onerror 一起处理图像

标签 html image onerror jquery-lazyload

我的页面上有一些图片:

<img src="http://www.abc/images/abc.jpg" />

如果无法加载图像(例如,因为 abc.jpg 不存在),那么我会改为显示“默认”图像:

<img src="http://www.abc/images/abc.jpg" onerror="this.src='http://www.abc/images/default.jpg'" /> 

如果我添加 LazyLoad到我的图像并加载一个更轻量级的默认图像,它变成:

<img
    class="lazy"
    data-original="http://www.abc/images/abc.jpg"  
    src="http://www.abc/images/graydefault.jpg"
    onerror="this.src='http://www.abc/images/default.jpg'" /> 

现在,当页面加载时,它会先加载轻量级图像,然后再加载实际图像。

但是如果实际图像不存在怎么办?轻量级默认图像将保留在那里,但这不是我想要的:

如何在出错时加载我的默认图像 (default.jpg)?

PS:默认图片很重,所以我想避免将其作为默认图片加载。

最佳答案

在 lazyload js 中使用“出现”选项。在延迟加载js中使用如下代码进行on-error图片src加载

appear: function(ele,settings)
{
    $(ele).attr("src",$(ele).attr("data-original"));
}

当图像在视口(viewport)中可用时,此函数将 src 替换为 data-original 。如果未加载数据原始图像 url,则加载错误图像。

关于html - 无法让 LazyLoad 和 onerror 一起处理图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23753791/

相关文章:

html - 格式化表格列宽以适合内容(无换行)

除非刷新,否则 JavaScript 不会加载

php - 如何在 wordpress 中检索和显示图像的替代文本?

html - 框上的跨浏览器阴影

javascript - xmlHttpRequest.onerror 处理程序用例

html - 如何保持原始图像比例?

Javascript querySelectorAll 从多个输入中获取多个值

java - OpenCV Java - 如何裁剪图像中检测到的圆圈

javascript - 浏览器之间不一致的 window.onerror 返回 true/false - 任何可用的正确返回值列表?

javascript - React img onError 事件未触发