fix: background 用 saveAs 下载,兼容下载前询问设置
原版插件模式:采集和下载在 background 同一 async 函数中执行, background 上下文一直活着,saveAs 弹框不会被 popup 关闭打断。
This commit is contained in:
@@ -177,7 +177,7 @@ chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
|
|||||||
const stored = await chrome.storage.session.get(['pptxBase64', 'pptxFilename']);
|
const stored = await chrome.storage.session.get(['pptxBase64', 'pptxFilename']);
|
||||||
if (!stored.pptxBase64) throw new Error('没有待下载的数据');
|
if (!stored.pptxBase64) throw new Error('没有待下载的数据');
|
||||||
const dataUrl = 'data:application/vnd.openxmlformats-officedocument.presentationml.presentation;base64,' + stored.pptxBase64;
|
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']);
|
await chrome.storage.session.remove(['pptxBase64', 'pptxFilename']);
|
||||||
return { ok: true };
|
return { ok: true };
|
||||||
})()
|
})()
|
||||||
|
|||||||
+1
-1
@@ -95,7 +95,7 @@ async function exportPptx() {
|
|||||||
if (!dlResult || !dlResult.ok) throw new Error(dlResult?.error || '下载失败');
|
if (!dlResult || !dlResult.ok) throw new Error(dlResult?.error || '下载失败');
|
||||||
|
|
||||||
setProgress(100, '导出完成');
|
setProgress(100, '导出完成');
|
||||||
setResult('success', '已下载到 Downloads/web-to-ppt/');
|
setResult('success', '导出完成');
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
setProgress(0, error.message || String(error));
|
setProgress(0, error.message || String(error));
|
||||||
|
|||||||
Reference in New Issue
Block a user