// 通用小工具(被多个页面共用) /** * 统一文件下载入口。 * IE10/11 走 msSaveOrOpenBlob(不支持 a[download]);现代浏览器走 a[download] + ObjectURL,下载完立即回收 URL。 * 注意:此函数是唯一定义,勿在 compat.js 或其它文件重复声明(全局函数重复声明会静默覆盖)。 * @param {Blob} blob * @param {string} filename */ function downloadBlobFile(blob, filename) { if (window.navigator && window.navigator.msSaveOrOpenBlob) { window.navigator.msSaveOrOpenBlob(blob, filename); return; } var url = URL.createObjectURL(blob); var a = document.createElement("a"); a.href = url; a.download = filename || "download"; document.body.appendChild(a); a.click(); setTimeout(function () { document.body.removeChild(a); URL.revokeObjectURL(url); }, 100); }