1. //下载图片
    2. download() {
    3. let imgData = 'data:image/png;base64,iVBORw0KGgoAAAANSUh........';
    4. this.downloadFile('测试.png', imgData);
    5. },
    6. //下载
    7. downloadFile(fileName, content) {
    8. let aLink = document.createElement('a');
    9. let blob = this.base64ToBlob(content); //new Blob([content]);
    10. let evt = document.createEvent("HTMLEvents");
    11. evt.initEvent("click", true, true);//initEvent 不加后两个参数在FF下会报错 事件类型,是否冒泡,是否阻止浏览器的默认行为
    12. aLink.download = fileName;
    13. aLink.href = URL.createObjectURL(blob);
    14. // aLink.dispatchEvent(evt);
    15. //aLink.click()
    16. aLink.dispatchEvent(new MouseEvent('click', {bubbles: true, cancelable: true, view: window}));//兼容火狐
    17. },
    18. //base64转blob
    19. base64ToBlob(code) {
    20. let parts = code.split(';base64,');
    21. let contentType = parts[0].split(':')[1];
    22. let raw = window.atob(parts[1]);
    23. let rawLength = raw.length;
    24. let uInt8Array = new Uint8Array(rawLength);
    25. for (let i = 0; i < rawLength; ++i) {
    26. uInt8Array[i] = raw.charCodeAt(i);
    27. }
    28. return new Blob([uInt8Array], {type: contentType});
    29. },