如何使用javascript下载文件?

Ber*_*ian 2 javascript download

您好,我希望能够在按下按钮时下载给定的文件。该文件将通过电话提供。api目前,我将其保存在本地存储中。所以我的文件夹是这样的:

rootFolder
-js file
-html file
-download file (`sample.csv`)
Run Code Online (Sandbox Code Playgroud)

如何创建下载link?到目前为止,我已经尝试过: <a download="sample.csv"></a> 我也尝试过使用onclick事件:

<a download="sample.csv" onclick="download()"></a>

function download|(){
   .....code that calls the `api`
}
Run Code Online (Sandbox Code Playgroud)

我不知道这两种方式如何适合:the downloadapi(如果有)和click事件处理程序(如果您打算在下载时进行其他逻辑处理)。

mon*_*nge 11

由于@saibbyweb 的答案在我撰写本文时不适用于所有浏览器,因此我推荐其他但类似的解决方案,在最新的(撰写本文时)Firefox、Chrome、Opera、Edge、Safari、移动版 Safari、移动版 Chrome 中进行了测试和工作:

function downloadUrl(url){
    window.open(url, '_self');
}
Run Code Online (Sandbox Code Playgroud)

毋庸置疑,您也可以使用 _blank 而不是 _self 在新标签页中打开链接,但您可能会通过使用 Javascript 打开新标签页/窗口来吓唬弹出窗口阻止程序。


sai*_*web 5

您可以提供此功能的链接以下载文件:

function downloadURI(uri, name) 
{
    var link = document.createElement("a");
    link.download = name;
    link.href = uri;
    link.click();
}
Run Code Online (Sandbox Code Playgroud)