无法下载具有下载属性的文本文件

时间:2018-10-23 15:49:38

标签: javascript html

我正在尝试下载包含以下代码段的文件。文件是文本文件。

var element = document.createElement('a');
element.setAttribute('href', URL);
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);

我正在测试Chrome。它在浏览器中打开文件,然后下载。

2 个答案:

答案 0 :(得分:0)

请参见MDN

  

此属性仅适用于同源网址。

可能是您链接到其他来源的URL。

您不能使用download属性覆盖它。

改为设置Content-Disposition HTTP响应标头。

答案 1 :(得分:0)

我设置了一个二进制mime类型,因为text/plain被浏览器所知,并且只是打开而不显示下载窗口。尝试此代码

var text = "Test Line1\n Line2 \n Line3";

var fileBlob = new Blob([text], {type: "application/octet-binary"});

var link = document.createElement("a");
link.setAttribute("href", URL.createObjectURL(fileBlob));
link.setAttribute("download", "HelloWorld.txt");
link.appendChild(document.createTextNode("Click here to download file"));
document.body.appendChild(link);