From 619b965cf87aeaf7a15df5398eba222a7d8beedc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=96=BB=E5=8B=87=E7=A5=A5?= <237899745@qq.com> Date: Tue, 18 Nov 2025 18:10:03 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D=E5=88=86?= =?UTF-8?q?=E4=BA=AB=E9=A1=B5=E4=B8=8B=E8=BD=BD=E6=96=87=E4=BB=B6=E6=97=B6?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E9=97=AA=E5=8A=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 问题:使用window.open()下载文件会导致页面短暂失焦,产生闪动效果 - 修复:改用隐藏的标签触发下载,避免打开新标签页 - 新增triggerDownload()方法处理文件下载 - 影响文件:frontend/share.html (line 744-795) --- frontend/share.html | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/frontend/share.html b/frontend/share.html index c467a17..b2793c5 100644 --- a/frontend/share.html +++ b/frontend/share.html @@ -751,7 +751,7 @@ if (file.httpDownloadUrl) { // 如果配置了HTTP下载URL,使用HTTP直接下载 console.log("[分享下载] 使用HTTP下载:", file.httpDownloadUrl); - window.open(file.httpDownloadUrl, '_blank'); + this.triggerDownload(file.httpDownloadUrl, file.name); } else { // 如果没有配置HTTP URL,通过后端SFTP下载 console.log("[分享下载] 使用SFTP下载"); @@ -775,10 +775,25 @@ downloadUrl += `&password=${encodeURIComponent(this.password)}`; } - window.open(downloadUrl, '_blank'); + this.triggerDownload(downloadUrl, file.name); } }, + // 触发下载(使用隐藏的a标签,避免页面闪动) + triggerDownload(url, filename) { + const link = document.createElement('a'); + link.href = url; + link.download = filename || ''; + link.style.display = 'none'; + document.body.appendChild(link); + link.click(); + + // 延迟移除,确保下载已触发 + setTimeout(() => { + document.body.removeChild(link); + }, 100); + }, + getFileIcon(file) { if (file.isDirectory) return 'fa-folder'; if (file.name.match(/\.(jpg|jpeg|png|gif|bmp|svg)$/i)) return 'fa-file-image';