Skip to content

downloadInBrowserResolved ​

Web 下载增强:有文件名且为 http(s) 时先 fetch 为 blob 再 a[download],避免 window.open 被拦截。

前置依赖 ​

依赖参数 ​

参数名类型说明
deps.fetchFetchFunction拉取远程文件
deps.createObjectURL(blob) => string创建 blob URL
deps.revokeObjectURL(url) => void释放 blob URL
deps.setTimeouttypeof setTimeout延迟 revoke
以及 downloadInBrowser 的 DOM 依赖

函数签名 ​

typescript
function downloadInBrowserResolved(
  options: DownloadOptions,
  deps: DownloadInBrowserResolvedDeps,
): Promise<DownloadResult>

参数 ​

参数名类型必填说明
optionsDownloadOptions是同 downloadInBrowser
depsDownloadInBrowserResolvedDeps是fetch + DOM 依赖

返回值 ​

类型说明
Promise<DownloadResult>下载结果

工作原理 ​

  1. 有文件名且 URL 为 http(s) 且非 window 模式时,先 fetch → blob → triggerAnchorDownload。
  2. fetch 失败(如 CORS)时回退 downloadInBrowser。
  3. 成功后延迟 60s revokeObjectURL。