IE 11, blob下载解决方案

时间:2020-04-17
本文章向大家介绍IE 11, blob下载解决方案,主要包括IE 11, blob下载解决方案使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1. 解决toBlob(), 放在你的代码toBlob即可

if (!HTMLCanvasElement.prototype.toBlob) {
        Object.defineProperty(HTMLCanvasElement.prototype, 'toBlob', {
            value: function value(callback, type, quality) {
                const canvas = this;
                setTimeout(() => {
                    const binStr = atob(canvas.toDataURL(type, quality).split(',')[1]);
                    const len = binStr.length;
                    const arr = new Uint8Array(len);
                    for (let i = 0; i < len; i++) {
                        arr[i] = binStr.charCodeAt(i);
                    }
                    callback(new Blob([arr], { type: type || 'image/png' }));
                });
            },
        });
    }

  

2. 下载:

  if (navigator.msSaveBlob) {
        // deal with IE 11, data是第一步toBlob的结果值
        window.navigator.msSaveOrOpenBlob(data, fileName);
    }
    else {
        const a = document.createElement('a');
        document.body.appendChild(a);
        a.download = fileName;
        a.href = window.URL.createObjectURL(data);
        a.click();
        a.remove();
    }

  

原文地址:https://www.cnblogs.com/ljyqd/p/12720889.html