gpt4 book ai didi

javascript在Safari中下载csv数据

转载 作者:行者123 更新时间:2023-11-30 00:23:05 26 4
gpt4 key购买 nike

是否可以下载我在 Safari 的 javascript 中创建的 csv 字符串?

编辑:我不想(不能)在服务器上创建文件。

我有以下代码,它可以在其他浏览器上正常工作,但不能在 safari 上运行。我能做的最好的事情就是在新窗口中打开数据,但这对用户来说是一种糟糕的 UI 体验。

    $("#csv").click(function(event) {
event.preventDefault();
navigator.sayswho = (function() {
var ua = navigator.userAgent, tem,
M = ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
return M[1];
})();

var download = function (content, fileName, mimeType) {
var a = document.createElement('a');
mimeType = mimeType || 'application/octet-stream';
mimeType = 'application/octet-stream';

if (navigator.msSaveBlob) { // IE10
return navigator.msSaveBlob(new Blob([content], {
type: mimeType
}), fileName);
} else if ('download' in a) { //html5 A[download]
a.href = 'data:' + mimeType + ',' + encodeURIComponent(content);
a.setAttribute('download', fileName);
document.body.appendChild(a);
setTimeout(function () {
a.click();
document.body.removeChild(a);
}, 66);
return true;
} else { //do iframe dataURL download (old ch+FF):
if (navigator.sayswho == 'Safari') {
var uri = 'data:text/csv;charset=utf-8,' + escape(content);
var link = document.createElement("a");
link.href = uri;
link.target = "_blank";
link.style = "visibility: hidden";
link.download = fileName;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
else
{
var f = document.createElement('iframe');
document.body.appendChild(f);
f.src = 'data:' + mimeType + ',' + encodeURIComponent(content);

setTimeout(function () {
document.body.removeChild(f);
}, 33333);
return true;
}
}
}

//csv_content is my string that has the csv data in it.
download(csv_content, moment().format("YYYY_MM_DD_HH_mm") + '.csv', 'text/csv');
});

在 Chrome 和 FireFox 中,它按预期工作。我看到了一些使用 FileSaver.js ( https://stackoverflow.com/a/14858315/1758023 ) 的答案,但评论说这不起作用(我也无法让它起作用)。

最佳答案

尝试使用以下 js 函数。

function download()
{
window.location = '<<your file name with full path>>';
//for ex. function download()
//window.location = 'mobilepayreport.xls';
}

关于javascript在Safari中下载csv数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32466645/

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