fix: 去掉 saveAs,直接下载;延迟 revoke URL

This commit is contained in:
李进
2026-07-27 14:23:08 +08:00
parent dca8a40508
commit 119f406a75
+4 -3
View File
@@ -105,15 +105,16 @@ async function exportPptx() {
setProgress(90, '正在打包...'); setProgress(90, '正在打包...');
const blob = await WebToPPT.schemaToPptxBlob(schema); const blob = await WebToPPT.schemaToPptxBlob(schema);
// 5. 下载 // 5. 下载(不弹对话框,直接下载到默认文件夹)
setProgress(95, '正在下载...'); setProgress(95, '正在下载...');
const url = URL.createObjectURL(blob); const url = URL.createObjectURL(blob);
const title = jsonData.source?.title || 'webpage'; const title = jsonData.source?.title || 'webpage';
const safeTitle = title.replace(/[\\/:*?"<>|]+/g, '-').replace(/\s+/g, '-').slice(0, 64) || 'webpage'; const safeTitle = title.replace(/[\\/:*?"<>|]+/g, '-').replace(/\s+/g, '-').slice(0, 64) || 'webpage';
const filename = `web-to-ppt/${safeTitle}-${Date.now()}.pptx`; const filename = `web-to-ppt/${safeTitle}-${Date.now()}.pptx`;
await chrome.downloads.download({ url, filename, saveAs: true }); const downloadId = await chrome.downloads.download({ url, filename });
URL.revokeObjectURL(url); // 等下载完成后再 revoke
setTimeout(() => URL.revokeObjectURL(url), 30000);
setProgress(100, `已导出:${filename}`); setProgress(100, `已导出:${filename}`);
setResult('success', '导出完成'); setResult('success', '导出完成');