兼容到ie10的js文件导出、下载到本地

话不多说,上代码:

try {
                let reader = new FileReader();
                let blob = new Blob([res.data], { type: 'application/octet-stream;charset=UTF-8' });
                reader.readAsArrayBuffer(blob);
                reader.onload = function() {
                    let data = new Blob([this.result]);
                    // 判断是否为文件流数据
                    if (data.size === 0) this.$message({ message: '生成文件失败', type: 'error' });
                };
                let downloadElement = document.createElement('a');
                let href = window.URL.createObjectURL(blob); // 创建下载的链接
                let head = res.headers['content-disposition'];
                if (!head) {
                    this.$message({ message: '导出失败', type: 'error' });
                    return;
                }
                downloadElement.href = href;
                head = decodeURI(head.split(';')[1].split('=')[1]); // url转码中文
                downloadElement.download = head; // 下载后文件名
                document.body.appendChild(downloadElement);
                downloadElement.click(); // 点击下载
                document.body.removeChild(downloadElement); // 下载完成移除元素
                window.URL.revokeObjectURL(href); // 释放掉blob对象
            } catch (e) {
                let head = res.headers['content-disposition'];
                head = decodeURI(head.split(';')[1].split('=')[1]); // url转码中文
                if ('msSaveOrOpenBlob' in navigator) {
                    window.navigator.msSaveOrOpenBlob(new Blob([res.data]), head);
                } else {
                    const url = window.URL.createObjectURL(new Blob([res.data], { type: 'application/octet-stream;charset=UTF-8' }));
                    const link = document.createElement('a');

                    link.style.display = 'none';
                    link.href = url;
                    link.setAttribute('download', head);
                    document.body.appendChild(link);
                    link.click();
                }
            }

  

转载于:https://www.cnblogs.com/webSong/p/10287007.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在网站开发中不免因为各种兼容问题苦恼,针对兼容问题,其实IE给出了解决方案Google也给出了解决方案 百度也应用了这种方案去解决IE的兼容问题 百度源代码如下 百度一下,你就知道 var wpo={start:new Date*1,pid:109,page:‘superpage’} 可以打开百度,右键查看源码看下!我们可以看下文件头是否存在这样一行代码! 这句话的意思是强制使用IE7模式来解析网页代码! 在这里送上几种IE使用模式! 2. Google Chrome Frame也可以让IE用上Chrome的引擎: 3.强制IE8使用IE7模式来解析 //或者 4.强制IE8使用IE6或IE5模式来解析 5.如果一个特定版本的IE支持所要求的兼容性模式多于一种,如: 二.设定网站服务器以指定预设兼容性模式 如果服务器是自己的话,可以在服务器上定义一个自订标头来为它们的网站预设一个特定的文件兼容性模式。这个特定的方法取决于你的网站服务器。 录入,下列的 web.config文件使Microsoft Internet Information Services (IIS)能定义一个自订标头以自动使用IE7 mode来编译所有网页。 另外还有一起其他的解决方案,例如google的 ie7 – js中是一个JavaScript库(解决IE与W3C标准的冲突的JS库),使微软的Internet Explorer的行为像一个Web标准兼容的浏览器,支持更多的W3C标准,支持CSS2、CSS3选择器。它修复了许多的HTML和CSS问题,并使得透明PNG在IE5、IE6下正确显示。 使IE5,IE6兼容到IE7模式(推荐) 使IE5,IE6,IE7兼容到IE8模式 使IE5,IE6,IE7,IE8兼容到IE9模式 解决PNG显示问题 只需将透明png图片命名为*-trans.png 需要注意的是:此方法对背景平铺(background-repeat)和背景(background-position)无法起到任何作用,默认会占满整个容器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值