javascript - 使用 java 脚本创建的锚标记调用指向成功或失败的 API 调用
问题描述
我有一个按钮,可以将其作为锚标记或链接。单击按钮时在代码下方添加。
download() {
let link = document.createElement('a');
document.body.appendChild(link);
//link.href = this.downloadFile; // can i call a function here which has API invoking?
link.onclick = this.downloadFile;
link.click();
}
downloadFile() {
this.Service.download(
id
).subscribe((data: any) => {
},
(error: any) => {
});
}
如何使用创建的锚标记调用此函数?
解决方案
不要使用 link.onclick,而是使用链接上的 addEventListener 方法来注册您的下载方法:
function download() {
var link = document.createElement('a');
document.body.appendChild(link);
link.addEventListener('click', this.downloadFile);
link.click();
}
function downloadFile() {
console.log("Here we go");
}
但是要小心,因为如果您的方法 downloadFile 是类方法,则 downloadFile 函数中的“this”将未定义或等于窗口全局对象,您将不得不使用 link.addEventListener('click', this.downloadFile.bind(this));