gpt4 book ai didi

javascript - 在 Safari 中使用 blob 保存 CSV 文件

转载 作者:行者123 更新时间:2023-12-01 02:10:34 25 4
gpt4 key购买 nike

我有下面的代码来生成下载链接,以便用户可以在我的网站上下载 .csv 文件。

var link = document.createElement("a");
link.id = "csvDwnLink";
window.URL = window.URL || window.webkitURL;

var csv = "\ufeff" + CSV,
blob = new window.Blob([csv], {type: 'text/csv, charset=UTF-8'}),
csvUrl = window.URL.createObjectURL(blob),
filename = 'export.csv';

$("#csvDwnLink").attr({'download': filename, 'href': csvUrl});
$('#csvDwnLink')[0].click();
document.body.removeChild(link);

希望用户可以点击csvUrl的下载链接来下载cvs文件。
它适用于 Chrome 。但是,当我使用 Safari 单击同一链接时,它将直接在选项卡中显示 csv 文件的内容。

如何解决这个问题,以便当我点击下载链接时,safari会显示保存文件窗口,用户可以选择他们想要保存文件的路径,而不是直接显示cvs文件的内容?< br/>希望有人能给我一些建议或替代方法。
提前致谢!

==已更新==
在此查找解决方案
solution 1 , solution 2

代码为:

var link = document.createElement("a");
link.id = "csvDwnLink";

document.body.appendChild(link);
window.URL = window.URL || window.webkitURL;
var csv = "\ufeff" + CSV,
csvData = 'data:attachment/csv;charset=utf-8,' + encodeURIComponent(csv),
filename = 'filename.csv';
$("#csvDwnLink").attr({'download': filename, 'href': csvData});
$('#csvDwnLink')[0].click();
document.body.removeChild(link);

Safari 将为用户下载文件,但是文件名未知,可能是因为 Safari 尚不支持“下载”属性,如raphael提到过。

最佳答案

我进行了快速研究 - 我看起来 Safari 不支持您想要实现的目标。

您的解决方案在 Chrome(和 Firefox)中有效的原因是它们 support the download attribute - Safari 还没有。

关于javascript - 在 Safari 中使用 blob 保存 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29799696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com