From b75e1867f6994df0ef17a9f950fbcef5ee8d1450 Mon Sep 17 00:00:00 2001 From: Victor_Jay Date: Sun, 31 May 2026 19:29:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=A4=B4=E5=83=8F=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=90=8E=E5=90=8C=E6=AD=A5=E6=9B=B4=E6=96=B0?= =?UTF-8?q?NAV=E5=A4=B4=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 上传成功回调中查找NAV .nav-avatar元素并更新src - 首次上传(原为文字占位)时创建img元素替换 - 带缓存破坏时间戳,与settings页头像更新逻辑一致 --- .../MetaLab-2026/html/settings/index.html | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/templates/MetaLab-2026/html/settings/index.html b/templates/MetaLab-2026/html/settings/index.html index 5913a61..31fb0ff 100644 --- a/templates/MetaLab-2026/html/settings/index.html +++ b/templates/MetaLab-2026/html/settings/index.html @@ -595,8 +595,33 @@ var res = JSON.parse(xhr.responseText); if (res.success) { showSettingsToast(res.message || '头像已更新'); - if (res.data && res.data.url && avatarPreview.tagName === 'IMG') { - avatarPreview.src = res.data.url + '?t=' + Date.now(); + var newAvatarUrl = res.data && res.data.url && (res.data.url + '?t=' + Date.now()); + if (newAvatarUrl && avatarPreview.tagName === 'IMG') { + avatarPreview.src = newAvatarUrl; + } + // 同步更新 NAV 头像 + if (newAvatarUrl) { + var navLink = document.querySelector('.nav-avatar-link'); + if (navLink) { + var navImg = navLink.querySelector('img.nav-avatar'); + if (navImg) { + navImg.src = newAvatarUrl; + navImg.style.display = ''; + var fb = navLink.querySelector('.nav-avatar-default'); + if (fb) fb.style.display = 'none'; + } else { + var fb2 = navLink.querySelector('.nav-avatar-default'); + if (fb2) { + var img = document.createElement('img'); + img.src = newAvatarUrl; + img.alt = ''; + img.className = 'nav-avatar'; + img.onerror = function() { this.style.display = 'none'; this.nextElementSibling.style.display = 'flex'; }; + navLink.insertBefore(img, fb2); + fb2.style.display = 'none'; + } + } + } } } else { showSettingsToast(res.message || '上传失败', true);