编程语言
首页 > 编程语言> > javascript – 如何使用window.open设置文件名

javascript – 如何使用window.open设置文件名

作者:互联网

我试图下载JavaScript计算的临时结果.假设我有一个字符串str,我想下载一个包含str的文件并将其命名为data.csv,我使用以下代码:

window.open('data:text/csv;charset=utf-8,' + str);

该文件可以成功下载,但是如何自动命名文件data.csv而不是每次手动设置名称?

解决方法:

您可以使用< a>的下载属性来实现此目的.元素.例如:

<a href="1251354216241621.txt" download="your-foo.txt">Download Your Foo</a>

此属性指示应下载文件(而不是显示,如果适用),并指定应为下载的文件使用哪个文件名.

您可以使用download属性和.click()生成一个不可见的链接,而不是使用window.open().

var str = "Name, Price\nApple, 2\nOrange, 3";
var uri = 'data:text/csv;charset=utf-8,' + str;

var downloadLink = document.createElement("a");
downloadLink.href = uri;
downloadLink.download = "data.csv";

document.body.appendChild(downloadLink);
downloadLink.click();
document.body.removeChild(downloadLink);

不幸的是,并非所有浏览器都支持此功能,但添加它不会让其他浏览器更糟糕:它们会继续使用无用的文件名下载文件. (这假设您使用的MIME类型是他们的浏览器尝试下载.如果您试图让用户下载.html文件而不是显示它,这对您不支持的浏览器没有任何帮助. )

标签:javascript,download,window-open
来源: https://codeday.me/bug/20190925/1817476.html