美文网首页
IE浏览器blob下载

IE浏览器blob下载

作者: 我喜欢吃辣椒 | 来源:发表于2020-06-16 10:02 被阅读0次

    1.题主谷歌浏览器使用window.open直接打开即可下载,IE打开乱码
    2..txt文件window.open谷歌会直接打开,采用a标签 download
    3.通过blob方式进行下载,实现比较合理,代码:

    function downLoad(){
    
    var url = url //下载地址
    
                        if (window.navigator.msSaveBlob) {
    
                            try {
    
                                //创建XMLHttpRequest对象
    
                                var xhr = new XMLHttpRequest();
    
                                //配置请求方式、请求地址以及是否同步
    
                                xhr.open('GET', url, true); //请求方式根据后台来配置
    
                                //设置请求结果类型为blob
    
                                xhr.responseType = 'blob';
    
                                //请求成功回调函数
    
                                xhr.onload = function (e) {
    
                                    if (this.status == 200) {//请求成功
    
                                        //获取blob对象
    
                                        var blob = this.response;
    
                                        //获取blob对象地址,并把值赋给容器
    
                                        window.navigator.msSaveBlob(blob, name)  // name要导出的文件名
    
                                    }
    
                                };
    
                                xhr.send();
    
                            } catch (e) {
    
                                console.log(e);
    
                            }
    
                        } else {
    
                            if (typeof url == 'object' && url instanceof Blob) {
    
                                url = URL.createObjectURL(url); // 创建blob地址
    
                            }
    
                            var aLink = document.createElement('a');
    
                            aLink.href = url;
    
                            aLink.download = 'name| '';
    
                            var event;
    
                            if (window.MouseEvent) {
    
                                event = new MouseEvent('click');
    
                            }
    
                            else {
    
                                event = document.createEvent('MouseEvents');
    
                                event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    
                            }
    
                            aLink.dispatchEvent(event);
    
                        }
    
    }
    

    相关文章

      网友评论

          本文标题:IE浏览器blob下载

          本文链接:https://www.haomeiwen.com/subject/njdlxktx.html