如何在JavaScript中从window.open()重命名下载的文件?

3

最近我偶然发现了这个关于如何直接将表格转换为Excel文件的JSFiddle,而不需要任何花哨的插件。它非常适合我的需求,但有一个缺陷,我无法重命名它的文件。Chrome会将文件重命名为download,而Firefox会随机命名。

$("#btnExport").click(function (e) {
    window.title = "filename.xls"; // this part doesn't work
    window.open('data:application/vnd.ms-excel,' +     
    $('#dvData').html());
    e.preventDefault();
});

我该如何重命名下载的文件?

1个回答

2
使用带有download属性的<a>元素。
let file = new Blob([$('#dvData').html()], {type:"application/vnd.ms-excel"});

let url = URL.createObjectURL(file);

let a = $("<a />", {
  href: url,
  download: "filename.xlsx"
})
.appendTo("body")
.get(0)
.click();

jsfiddle https://jsfiddle.net/jWAJ7/4549/


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接