javascript - 如果图像未正确加载,如何显示默认图像?

标签 javascript jquery image

我想出了 this solution (jsfiddle) - 实现 $.error 函数并更改图像 src 属性,但接缝处并不总是调用此函数,有时我会得到此 default image带有 alt 文本而不是我提供的图像。我使用这个 jquery 代码来更新图像:

$(document).ready(function() {
    $('img').error(function () {
        var defaultSrc = $(this).data('default-src');
        $(this).attr('src', defaultSrc);
    });
});

data-default-src 属性也为每个图像提供。有没有更高级更确定的jquery解决方案?

最佳答案

我认为您会发现即使是 $(document).ready 事件也可能来不及将 .error 处理程序附加到 img。在附加处理程序之前,错误事件可能已经发生。

作为解决方法,您可以确保在 .error 处理程序到位之前不设置图像的 src,例如,像这样:

HTML

<img id="1" data-src="/bad/path/to/image" data-default-src="good/path/to/image" />

Javascript

$(document).ready(function() {
    $('img').on('error', function () {
        this.src = $(this).data('default-src');
    }).each(function() {
        this.src = $(this).data('src');
    });
});

Demo

关于javascript - 如果图像未正确加载,如何显示默认图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29465536/

相关文章:

javascript - 如何在JS中创建UTC日期?

javascript - promise 拒绝不能正确传播错误

javascript - 如何创建变量来打开相同类型的div?

javascript - jQuery/数据表 : including many differents search filters types and fields in a basic DataTable

javascript - 在新窗口中分离/打开 iframe

Jquery调整图像大小

Javascript 字符计数器重复

jQuery - 如何淡入部分透明的 div 并保留不透明度?

html - 背景 : url and filter:brightness

.net - 如何在 .NET 中添加 EXIF 信息以对图像进行地理标记?