在 http://www.cnblogs.com/sunshine6/p/8296945.html 中有说关于前后端分离时如何实现文件下载的功能,但是过完年回来,同事告诉我这个方式在ie11上存在不兼容的问题,报如下错:

  浏览器兼容问题是很头疼的问题,因为之前也没遇到过这样的问题,所以经过两三个小时才解决。

  发现在微软在ie10 和ie11中有两个特有的方法:window.navigator.msSaveBlobwindow.navigator.msSaveOrOpenBlob 方法,这两个方法的区别在于,前者只有保存,后者有保存和打开两个选项,按个人喜好使用就行。

  优化之后的代码如下:

  /**
* 导出用户列表
*/
private exportUsers(){
this.http.doPost({
url: 'system/sysmanager/user/exportUsers',
responseType:ResponseContentType.Blob,
body:this.form,
success: (req, res) => {
if(window.navigator.msSaveOrOpenBlob){
// 兼容ie11
try{
var blobObject = new Blob([res.json()]);
window.navigator.msSaveOrOpenBlob(blobObject, "用户列表.xlsx");
}
catch(e){
console.log(e);
}
}
else{
var blob = new Blob([res.json()]);
var a = document.createElement('a');
a.href = URL.createObjectURL(blob); // xhr.response is a blob
a.download = "用户列表.xlsx";
a.style.display = 'none';
document.body.appendChild(a);
a.click();
a.remove();
}
}
});
}

  如果有什么不当之处,请大家多多指出。

文件下载的ie11兼容性优化的更多相关文章

  1. 解决Win8.1 IE11兼容性问题的方法

    装了64位win8.1企业版,IE11出现了一些兼容性问题,如个别网银网页兼容问题,还有office.迅雷.adobe reader.旋风等等插件不兼容不能加载的问题. 折腾了一天总算全部解决了,主要 ...

  2. IETester——用来测试IE5.5~IE11兼容性的工具

    IETester是一款ie浏览器多版本测试工具,能很方便在ie5.5,ie6,ie7,ie8,ie9,ie10,ie11切换,只需安装一个软件,就可以解决N多ie浏览器的问题,满足大部分IE浏览器兼容 ...

  3. h5 ios输入框与键盘 兼容性优化

    起因 h5的输入框引起键盘导致体验不好,目前就算微信.知乎.百度等产品也没有很好的技术方案实现,尤其底部固定位置的输入框各种方案都用的前提下体验也并没有很好,这个问题也是老大难问题了.目前在准备一套与 ...

  4. IE11兼容性问题修改

    最近测试给了我一大堆BUG,一瞅发现全是IE11的.吐槽一下这个浏览器真的比较特立独行.很多默认的样式跟别的浏览器不同,而且最明显的一点应该是padding左右内边距往往比别的浏览器大了一倍.但是当需 ...

  5. IE11兼容性设定

    增加browser文件,如下:  <browsers>   <browser refID="Default">     <capabilities&g ...

  6. IE11的CSS兼容性问题

    最近测试给了我一大堆BUG,一瞅发现全是IE11的.吐槽一下这个浏览器真的比较特立独行.很多默认的样式跟别的浏览器不同,而且最明显的一点应该是padding左右内边距往往比别的浏览器大了一倍.但是当需 ...

  7. 企业IT管理员IE11升级指南【6】—— Internet Explorer 11面向IT专业人员的常见问题

    企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flas ...

  8. IOS网络第三天 - 01-网络文件下载(0922略)

    01 数据的安全01 - 密码加密 02 数据的安全02 - 加密过程 01 -数据的安全01 - 本地存储和代码安全 04-网络状态监控 05-真机演示 06-小文件下载 07-大文件下载01-基本 ...

  9. IE11登陆交行网银崩溃

    1.打开IE11兼容性视图 2.交通银行就填入95559.com.cn 3.重新打开IE11登录网银

随机推荐

  1. [LeetCode] Subdomain Visit Count 子域名访问量统计

    A website domain like "discuss.leetcode.com" consists of various subdomains. At the top le ...

  2. 前端性能优化 —— reflow(回流)和repaint(重绘)

    简要:整个在浏览器的渲染过程中(页面初始化,用户行为改变界面样式,动画改变界面样式等)reflow(回流)和repaint(重绘) 会大大影响web性能,尤其是手机页面.因此我们在页面设计的时候要尽量 ...

  3. DEV_TreeList使用经验小结

    1. 点击叶子节点是希望Open键显示,点击非叶子节点时希望隐藏.实践中发现点击到了非叶子节点图标,Open没有隐藏,如何解决? 增加一个判断: if (_hitInfo.HitInfoType != ...

  4. 问题:CGI返回给前端的汉字数据是乱码(已解决)

    今天,我在写CGI程序,把后台数据返回到前台页面上,出现乱码, 不好看,所以,我在Content-type:application后面加了字符集的设置(字符集和前端一样), fprintf(stdou ...

  5. 使用DevExpress.XtraTabbedMdi.XtraTabbedMdiManager控件来加载MDI窗体

    使用DevExpress.XtraTabbedMdi.XtraTabbedMdiManager控件来加载MDI窗体     [csharp] view plaincopyprint? <SPAN ...

  6. halcon 图片加载和设置XY轴滑动块的先后顺序

    //必须先加载图片,然后执行 hWndControl.setGUICompRangeX( new int[]{ XTrackBar.Minimum, XTrackBar.Maximum}, XTrac ...

  7. spring注解简单记录

    @Autowired 自动匹配,按类型 @qualifiter("beanname") 当有多个bean匹配时,可指定bean名称 @Resource byname优先匹配,然后b ...

  8. Mac OSX bash function 备份

    # mount the android file image function mountAndroid { hdiutil attach ~/android.dmg.sparsefile.spars ...

  9. Centos修改时间为24小时制

    终端输入命令:tzselect 根据提示选择:5 --> 9-->1-->1-->okrm /etc/localtimeln -sf /usr/share/zoneinfo/A ...

  10. js 转java后台传过来的list

    var intIndex=0; arrList = new Array(); arrList = "${orderNumList}".replace('[','').replace ...