javascript - 如果服务器上不存在图像 url,则将 url 替换为其他(多次)[没有 404 控制台错误]
问题描述
我为我的论坛系统制作了 lastposter 头像。
我想要什么:当用户头像 img 不存在时,多次更改文件类型。
例如; 如果user_user1_avatar.png
不存在,则将 url 更改为user_user1_avatar.jpg
,如果不存在,则更改为user_user1_avatar.gif
,依此类推。
我试试这个,但仍然得到 404 错误。
var imgz = document.getElementsByClassName("lpavatar_forumID")[0];
function imageExists(url) {
return new Promise((resolve, reject) => {
const img = new Image(url);
img.onerror = reject;
img.onload = resolve;
const timer = setInterval(() => {
if (img.naturalWidth && img.naturalHeight) {
img.src = ''; /* stop loading */
clearInterval(timer);
resolve();
}
}, 10);
img.src = url;
});
}
imageExists("bburl/uploads/avatars/avatar_avatar1.png")
.then(() => imgz.src = 'bburl/uploads/avatars/avatar_avatar1.png')
.catch(() => imgz.src = 'bburl/uploads/avatars/avatar_avatar1.jpg')
.finally(() => imgz.src = 'bburl/uploads/avatars/avatar_avatar1.gif')
});
<img class="lpavatar_forumID" src="/avatar/user_user1.png" />
<img class="lpavatar_forumID" src="/avatar/user_user1.png" />
<img class="lpavatar_forumID" src="/avatar/user_user1.png" />
解决方案
推荐阅读
- tibco-business-works - 如何遍历 CSV 文件并在写入文件活动中写入每一行?
- sql - 如何从 SQL Server 2014 获取特定的 XML 格式(提供的示例)
- ruby-on-rails - 如何设置特定的sidekiq队列以同时运行一项任务?
- javascript - 在 Highcharts Networkgraph 中显示/隐藏子节点和链接
- docker - Jenkins 管道,如何在没有 Jenkins 文件的情况下从 scm 获取源代码
- mysql - 如何更正字符串格式以防止语句中出现无效字符?
- javascript - 在静音 iPhone 上播放 P5.js 声音
- python - 如何修复:.py 文件无法从 .yaml 文件中解码以俄语和白俄罗斯语编写的 str。我正在使用 UTF-8 编码
- python-3.x - 使用 Matplotlib 绘制 3 相正弦曲线时出错
- node.js - 使用 npm 安装节点失败并出现 EACCES 错误