寻找在原始图像源引发异常的情况下为图像加载设置multiple个后备的方法.

给定一个图像标记,如<img id="art">,当第一个图像cover.jpg抛出错误时,下面的JS代码将后备图像src设置为album.jpg:

var art = document.getElementById('art');

art.src = "cover.jpg";

art.onerror = () => {
    art.src = "album.jpg";
};

如何触发another onerror处理程序,以便在album.jpg丢失的情况下设置另一个回退?例如,如果加载cover.jpg失败,然后album.jpg也失败,如何将另一个后备设置为front.jpg,依此类推?

推荐答案

如果多次更新src属性,则同一onError处理程序将多次触发.

let art = document.getElementById('art');

let srcs = ['cover.jpg', 'album.jpg','front.jpg', 'empty.png']

art.src = srcs.shift()

art.onerror = e => {
  console.log(`failed to load ${art.src}`)
  if(srcs.length) art.src = srcs.shift()
}
<img id="art">

Javascript相关问答推荐

容器如何更改默认插槽中子项的显示?

RxJS setTimeout操作符等效

在贝塞尔曲线的直线上找不到交叉点:(使用@Pomax的bezier.js)

Redux工具包查询(RTKQ)端点无效并重新验证多次触发

Cookie中未保存会话数据

为什么我的列表直到下一次提交才更新值/onChange

将自定义排序应用于角形数字数组

查找最长的子序列-无法重置数组

使用JQuery单击元素从新弹出窗口获取值

查询参数未在我的Next.js应用路由接口中定义

映射类型定义,其中值对应于键

OpenAI转录API错误请求

try 使用PM2在AWS ubuntu服务器上运行 node 进程时出错

如何确保预订系统跨不同时区的日期时间处理一致?

在验证和提交表单后使用useNavigate()进行react 重定向,使用带有加载器和操作的路由

用于部分字符串的JavaScript数组搜索

有没有办法通过使用不同数组中的值进行排序

JavaScript:多个图像错误处理程序

在此div中添加一个类,并在一段时间后在Java脚本中将其删除

在不使用AJAX的情况下将JavaScript数组值传递给Laravel控制器?