【发布时间】:2019-11-30 09:57:22
【问题描述】:
我尝试在 Opera 浏览器中下载来自 API 的文件。
文件第一次点击下载,没问题但第二次点击后下载不了(其实不止一个)。没有错误,只是我看不到下载的文件。所以,它不会下载文件。
简而言之,文件仅在第一次单击时下载。为什么点击后没有下载?
此外,在 Chrome 和 Mozilla 中每次单击时都会下载该文件,这很有效。我只是在 Opera 中遇到了这个错误。
我的代码;
function downloadFile(response: Response) {
const fileName = getFileNameFromHttpResponse(response);
const newBlob = new Blob([<any>response.body],{ type: (<any>response.body).type });
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(newBlob);
return;
}
const data = window.URL.createObjectURL(newBlob);
const link = document.createElement('a');
link.href = data;
link.download = fileName;
link.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }));
setTimeout(() => {
window.URL.revokeObjectURL(data);
}, 100);
}
关于 Opera:版本:65.0.3467.48 系统:Windows 10 64-bit
如何解决这个问题?
谢谢。
【问题讨论】:
-
它会在控制台中抛出任何异常/警告吗?
-
"但是第二次点击后没有下载(实际上不止一次)"查看工具栏是否有关于多个文件下载的警告。在其他浏览器中,它会阻止多个文件,直到用户单击允许按钮,因此可能会遇到类似的问题
标签: javascript opera