From df699f113471ebeb7c6ef0aa6522ee4cb7d9b5cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=BF=9B?= Date: Mon, 27 Jul 2026 15:16:33 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20saveAs=20=E4=BC=98=E5=85=88=EF=BC=8C?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=20fallback=20=E7=9B=B4=E6=8E=A5=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 先尝试弹出保存对话框(saveAs: true),如果和 Chrome 设置冲突 则 fallback 到直接下载到默认文件夹。兼容所有 Chrome 设置。 --- web-to-ppt/background.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/web-to-ppt/background.js b/web-to-ppt/background.js index d5f36db..6383c05 100644 --- a/web-to-ppt/background.js +++ b/web-to-ppt/background.js @@ -177,7 +177,12 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { const stored = await chrome.storage.session.get(['pptxBase64', 'pptxFilename']); if (!stored.pptxBase64) throw new Error('没有待下载的数据'); const dataUrl = 'data:application/vnd.openxmlformats-officedocument.presentationml.presentation;base64,' + stored.pptxBase64; - await chrome.downloads.download({ url: dataUrl, filename: stored.pptxFilename }); + // 先尝试弹出保存对话框,失败则直接下载到默认文件夹 + try { + await chrome.downloads.download({ url: dataUrl, filename: stored.pptxFilename, saveAs: true }); + } catch (e) { + await chrome.downloads.download({ url: dataUrl, filename: stored.pptxFilename }); + } await chrome.storage.session.remove(['pptxBase64', 'pptxFilename']); return { ok: true }; })()