Javascript:链接“点击”时自动下载文件

时间:2017-06-02 17:19:50

标签: javascript download

我发现了一个类似的问题,张贴在一个较旧的主题中,但那里给出的答案没有用。我正在使用Mozilla Firefox浏览器(最新版本)进行测试。

我有一个带有imageLinks的数组,并希望在没有用户交互的情况下自动触发下载。我的代码如下:

for (var i=0; i<imageLinks.length; i++) {

if (imageLinks[i]) {

    console.log(imageLinks[i]);
    var link = document.createElement('a');
    link.href = imageLinks[i];
    link.download = 'imagefile';
    link.click();
    }
}

然而,在Forefox中,图像是在新标签中打开的吗?

1 个答案:

答案 0 :(得分:0)

我在一个论坛上偶然发现了这个片段,似乎可以解决这个问题。但请注意,浏览器仍会询问用户他/她是否希望保存文件,以及在何处保存文件。此查询可以被接受为&#34;自动对此类型的文件执行此操作&#34;,从那时起,下载将自动保存到本地驱动器。

function simulateClick() {
    var evt = document.createEvent("MouseEvents");
    evt.initMouseEvent("click", true, true, window,
      0, 0, 0, 0, 0, false, false, false, false, 0, null);
    var a = document.getElementById('myLink');
    a.dispatchEvent(evt);
  }

可以使用图像链接在阵列上调用此功能,并且可以将用户选择的图像保存到驱动器中。我对此解决方案感到满意,因为它比使用用户选择的图像的ZIP文件更容易实现。图像库很小,因此应该快速初始化下载。