首页 > 解决方案 > 按下下载按钮时出现预期功能错误

问题描述

当我在 Microsoft Edge 的网站上按下下载按钮时,我收到“预期功能”错误。

download() {
    this.element = document.getElementById("img") as HTMLElement;
    let dataurl = this.element.innerHTML;
    let myRegexp = /(?:^|\s)src=(.*?)(?:\s|$)/g;
    let match = myRegexp.exec(dataurl);
    let match1 = match[1].replace('"></div>', '');

    this.ImageURL = match1;
    let block = this.ImageURL.split(";");
    let contentType = block[0].split(":")[1];
    let realData = block[1].split(",")[1];
    let file = this.dataURLtoFile(this.ImageURL, 'QRCode.png');
}

  dataURLtoFile(dataurl, filename) {
    var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1],
      bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
    while (n--) {
      u8arr[n] = bstr.charCodeAt(n);
    }
    var a = document.createElement("a");
    document.body.appendChild(a);
    var blob = new Blob([new File([u8arr], filename, { type: mime })], { type: 'mime' }),
      url = window.URL.createObjectURL(blob);
    a.href = url;
    a.download = `QRCode.png`;
    a.click();
    setTimeout(function () {
      document.body.removeChild(a);
      window.URL.revokeObjectURL(url);
    }, 100);
    return new File([u8arr], filename, { type: mime });
}

该文件应下载:

这是错误:

[对象错误]:{描述:“预期功能”,消息:“预期功能”,编号:-2146823286,堆栈:“TypeError:n.prototype.dataURLtoFile 预期功能(http://instacei.com/1.bb25259c0233e7528077 .js:1:237067 ) 在 n.prototype.download ( http://instacei.com/1.bb25259c0233e7528077.js:1:236764 ) 在匿名函数 ( http://instacei.com/1.bb25259c0233e7528077.js: 1:155143)在handleEvent(http://instacei.com/main.1533bf301f026a959db3.js:1:117135)在handleEvent(http://instacei.com/main.1533bf301f026a959db3.js:1:138938)在Lr(http ://instacei.com/main.1533bf301f026a959db3.js:1:87225)在匿名函数(http://instacei.com/main.1533bf301f026a959db3.js:1:93361 ) 在匿名函数 ( http://instacei.com/main.1533bf301f026a959db3.js:1:284082 ) 在 e.prototype.invokeTask ( http:// /instacei.com/polyfills.481858ef51fe27531859.js:1:7664 ) 在 onInvokeTask ( http://instacei.com/main.1533bf301f026a959db3.js:1:55627 )"}

标签: javascriptangularmicrosoft-edge

解决方案


推荐阅读