javascript - 按下下载按钮时出现预期功能错误
问题描述
当我在 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 )"}
解决方案
推荐阅读
- sql - 无法使用空值连接两个几乎相同的表
- laravel - 为什么第一方客户端无法处理 Laravel Passport 上的“authorization_code”授权类型
- python - 通过用户输入在元组中打印出每次都不同的输出
- java - 如何从Java中的Pair和Object的映射中获取值
- ruby-on-rails - 表单提交 React 和 Rails
- javascript - 在 Vue.js 的匿名组件中包装接收到的插槽(vnodes)
- ajax - HTTP 重定向 (302) 在 ajax 调用期间如何工作
- css - 如何在材质 UI 选择/菜单项组件中将文本换行到下一行?(CSS问题)
- android - Firebase Auth - GetTokenResult.getExpirationTimestamp 在内部抛出 ClassCastException
- python - numba 中的随机样本