Vue中使用Blob进行文件下载

本文介绍了一种在Chrome、IE11和Firefox等不同浏览器中实现文件下载的方法,通过使用Blob对象和URL.createObjectURL()来创建可点击的下载链接,特别针对IE11和Firefox提供了兼容性解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 常规用法 chrome正常使用,IE11 、Firefox 不兼容
    let a = document.createElement('a');
    let blob = new Blob([response.data], {type: "application/vnd.ms-excel"}); 
    let objectUrl = URL.createObjectURL(blob);
    a.setAttribute("href",objectUrl);
    a.setAttribute("download", 'XXX.xls');
    a.click();
二、兼容 IE11、FireFox、Chrome
    var csvData = new Blob([content], { type: 'application/vnd.ms-excel' });
    // for IE
    if (window.navigator && window.navigator.msSaveOrOpenBlob) {
        window.navigator.msSaveOrOpenBlob(csvData, file_name);
    }
    // for Non-IE (chrome, firefox etc.)
    else {
        var a = document.createElement('a');
        //FireFox 需要补充 document.body.appendChild(a) 语法提供支持
        document.body.appendChild(a);
        a.style = 'display: none';
        var url = window.URL.createObjectURL(csvData);
        a.href =  url;
        a.download = file_name;
        a.click();
        a.remove();
        window.URL.revokeObjectURL(url);
    }
三、参考链接

https://blog.youkuaiyun.com/u014628388/article/details/81738704

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值