最近,我在编写一个项目时遇到了一个问题。下载文件时,如果使用A标签的下载属性,则与IE浏览器不兼容。同时,它将打开一个新窗口,转动一些博客,找到解决方案,记录下来,以下是注释。
函数下载(FileID,FileName,FileType){{{
下载(文件名 +“。” + FILETYPE,
encodeuri(encodeuri('<%=request.getAttribute("file_url")%>/file/downfileSource?id =' + fileid +'&name =' + fileName +'&suffix =' + filetype));
}
函数下载(名称,href){
if(window.navigator.mssaveblob){//此方法支持IE10+
var blobs = new blob([href],{type:'text/plain'});//创建一个斑点对象
尝试 {
window.navigator.msaveblob(blobs,name);//目前是文件地址,如果您返回二进制流
}捕获(e){
console.log(e);
}
} else {//其他浏览器使用标签下载
var a = document.createelement(“ a”);
var e = document.createevent(“ mouseevents”);
e.initevent(“ click”,false,false);
a.href = href;
A.下载=名称;
a.target ='_blank';
a.dispatchevent(e);
a.remove();
}
}
它在这里涉及斑点对象,并且可以学习相关的技术文档。