@planjs/utils
Version:
🔧 Common tools collection
37 lines (31 loc) • 890 B
JavaScript
import dataURLToBlob from '../blob/dataURL-to-blob';
/**
* 下载文件
* @param path {url|data url|blob}
* @param fileName
* @category Bom
*/
function downloadFile(path, fileName) {
var a = document.createElement('a');
var event = new MouseEvent('click');
a.download = fileName;
a.href = path instanceof Blob ? URL.createObjectURL(path) : path;
if (typeof path === 'string') {
try {
a.href = URL.createObjectURL(dataURLToBlob(path));
} catch (e) {}
}
if (path instanceof Blob) {
var clickHandler = function clickHandler() {
setTimeout(function () {
URL.revokeObjectURL(a.href);
a.removeEventListener('click', clickHandler);
}, 150);
};
a.addEventListener('click', clickHandler, false);
}
document.body.appendChild(a);
a.dispatchEvent(event);
document.body.removeChild(a);
}
export default downloadFile;