util.js 767 B

123456789101112131415161718192021222324
  1. // 通用小工具(被多个页面共用)
  2. /**
  3. * 统一文件下载入口。
  4. * IE10/11 走 msSaveOrOpenBlob(不支持 a[download]);现代浏览器走 a[download] + ObjectURL,下载完立即回收 URL。
  5. * @param {Blob} blob
  6. * @param {string} filename
  7. */
  8. function downloadBlobFile(blob, filename) {
  9. if (window.navigator && window.navigator.msSaveOrOpenBlob) {
  10. window.navigator.msSaveOrOpenBlob(blob, filename);
  11. return;
  12. }
  13. var url = URL.createObjectURL(blob);
  14. var a = document.createElement("a");
  15. a.href = url;
  16. a.download = filename || "download";
  17. document.body.appendChild(a);
  18. a.click();
  19. setTimeout(function () {
  20. document.body.removeChild(a);
  21. URL.revokeObjectURL(url);
  22. }, 100);
  23. }