【问题标题】:Does not download the file when i click secondly in Opera当我在 Opera 中单击第二次时不下载文件
【发布时间】: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


【解决方案1】:

解决了我的问题。 Opera 拒绝我的下载请求。我将“自动下载”设置为“允许”,并且成功了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 2015-06-03
    • 1970-01-01
    相关资源
    最近更新 更多