运用js天生及下载浏览器端的文件-Eric
媒介
之前写了一篇文章一次下载多个文件的解决方案中写了怎样下载服务器端的文件(支撑一连下载多个),今天和人人分享下怎样在浏览器端天生文件并下载。
场景
假如线上经常出现一些偶发性问题,当地又不好排查,我们只好增加一些追踪日记,当出现问题的时刻我们能依据日记举行排查。
解决方案
起首我们先明白一点,IE浏览器不支撑直接下载文件(禁用了反向和正向缓存),我们须要运用另存为功用,google浏览器我们能够直接下载。假如是为了纪录日记,我们平常挑选txt文件或许html文件(能够加款式,排版)。
代码
const downloadErrorLog = (fileName, content) => {
// IE
if(!!window.ActiveXObject || "ActiveXObject" in window) {
var winname = window.open('', '_blank');
winname.document.open('text/html', 'replace');
winname.document.writeln(content);// 假如是jsx代码,记得转化为html
winname.document.execCommand('saveas','', fileName);
winname.close();
}else{
let aLink = document.createElement('a');
aLink.download = fileName;
aLink.href = "data:text/plain," + content; // 牢记,content只能是字符串,假如是html元素,记得运用.innerHTML转换
aLink.click();
}
}