JavaScript 下载文本文件而不是打开

标签 javascript html download

我正在尝试使用 javascript 创建要下载的文件列表的虚拟链接。问题是它在新选项卡中打开所有文件,而不是直接下载。我希望下载它而不是在新选项卡中打开它。

任何有关此问题的帮助将不胜感激。到目前为止,我已经尝试了以下代码来达到目的。

var link = document.createElement('a');
link.style.display = 'none';
document.body.appendChild(link);

for (var i = 0; i < links.length; i++) {
      link.href = links[i];
      link.download = tfiles[i];
      link.target = '_blank';
      link.click();

}
document.body.removeChild(link);    

最佳答案

不要像 link.download = tfiles[i]; 这样设置下载属性,而是使用 setAttribute('download',"download_filename")。所以生成的代码将如下所示

var link = document.createElement('a');
link.style.display = 'none';
document.body.appendChild(link);

for (var i = 0; i < links.length; i++) {
      link.href = links[i];
      link.setAttribute('download',tfiles[i]);
      link.target = '_blank';
      link.click();

}
document.body.removeChild(link);

假设tfiles是您要下载的文件的文件名数组。

在一个简单的 html 文件中尝试此工作代码以进行更多练习。该代码可能无法在 stackoverflow run 片段中运行,因为这是一个沙盒环境。

<!DOCTYPE html>
<html>

<body>

  <script>
    function download() {
      var link = document.createElement('a');
      link.style.display = 'none';
      document.body.appendChild(link);
      link.setAttribute('download', "download");
      link.href = "https://picsum.photos/id/237/200/300";
      link.target = '_blank';
      link.click();
    }
  </script>

  <p>Click on the download button to download the image:
    <p>

      <button onClick="download()"> download</button>

      <p><b>Note:</b> The download attribute is not supported in Edge version 12, IE, Safari 10 (and earlier), or Opera version 12 (and earlier).</p>

</body>

</html>

关于JavaScript 下载文本文件而不是打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58123304/

相关文章:

python - 通过二进制文件生成很多curl命令

javascript - 如何将数据从可观察的主题推送到组件中的数组?

javascript - 添加小数点 - Javascript

html - 移除由::after 伪元素创建的最后一个元素

javascript - 输入类型日期验证 18 岁以下

html - 如何连续更改 bootstrap 3 中元素的顺序?

android - AsyncTask - 下载缓慢

javascript - 使用 += 运算符 undefined object 中的第一个元素

javascript - ReactJs 服务器数据处理

php - 使用 PHP 控制 wget