fix: saveAs 优先,失败 fallback 直接下载

先尝试弹出保存对话框(saveAs: true),如果和 Chrome 设置冲突
则 fallback 到直接下载到默认文件夹。兼容所有 Chrome 设置。
This commit is contained in:
李进
2026-07-27 15:16:33 +08:00
parent 20458d16ab
commit df699f1134
+6 -1
View File
@@ -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 };
})()