From 0ce890f45eda5ec721814c4dc50465aa2572cad8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=BF=9B?= Date: Mon, 27 Jul 2026 15:23:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20background=20=E7=94=A8=20saveAs=20?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=EF=BC=8C=E5=85=BC=E5=AE=B9=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=89=8D=E8=AF=A2=E9=97=AE=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原版插件模式:采集和下载在 background 同一 async 函数中执行, background 上下文一直活着,saveAs 弹框不会被 popup 关闭打断。 --- web-to-ppt/background.js | 2 +- web-to-ppt/popup.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web-to-ppt/background.js b/web-to-ppt/background.js index d5f36db..f50c76f 100644 --- a/web-to-ppt/background.js +++ b/web-to-ppt/background.js @@ -177,7 +177,7 @@ 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 }); + await chrome.downloads.download({ url: dataUrl, filename: stored.pptxFilename, saveAs: true }); await chrome.storage.session.remove(['pptxBase64', 'pptxFilename']); return { ok: true }; })() diff --git a/web-to-ppt/popup.js b/web-to-ppt/popup.js index 1dbf14c..8a8737b 100644 --- a/web-to-ppt/popup.js +++ b/web-to-ppt/popup.js @@ -95,7 +95,7 @@ async function exportPptx() { if (!dlResult || !dlResult.ok) throw new Error(dlResult?.error || '下载失败'); setProgress(100, '导出完成'); - setResult('success', '已下载到 Downloads/web-to-ppt/'); + setResult('success', '导出完成'); } catch (error) { setProgress(0, error.message || String(error));