Javascript 满足条件时下载CSV
我有一个将JSON转换为CSV的代码。我把它通过一个特定的条件(如果条件),我希望CSV自动下载,如果条件是没有任何按钮点击满足。最短/最简单的方法是什么 例如:Javascript 满足条件时下载CSV,javascript,jquery,csv,Javascript,Jquery,Csv,我有一个将JSON转换为CSV的代码。我把它通过一个特定的条件(如果条件),我希望CSV自动下载,如果条件是没有任何按钮点击满足。最短/最简单的方法是什么 例如: if( data.length == 10){ var stored_data = data; data = []; console.log(stored_data); var csv_file = ConvertToCSV(stored_data); //Conv
if( data.length == 10){
var stored_data = data;
data = [];
console.log(stored_data);
var csv_file = ConvertToCSV(stored_data); //ConvertTOCSV is a function
}
如果满足上述条件,则应下载CSV。多谢各位
注:我知道这可以通过点击按钮轻松完成。但我希望在满足条件时自动下载只需创建一个“虚拟”链接并以编程方式设置其href,然后单击。链接不应该出现在屏幕上,因为它没有内容
<body>
<a href="#" id="csvDownload" download></a>
</body>
<script>
if( data.length == 10){
var lnk = document.getElementById("csvDownload");
var stored_data = data;
data = [];
console.log(stored_data);
var csv_file = ConvertToCSV(stored_data); //ConvertTOCSV is a function
lnk.href = csv_file;
lnk.click();
}
</script>
如果(data.length==10){
var lnk=document.getElementById(“csvDownload”);
存储的var_数据=数据;
数据=[];
console.log(存储的_数据);
var csv_file=ConvertToCSV(存储的_数据);//ConvertToCSV是一个函数
lnk.href=csv_文件;
lnk.click();
}
只需创建一个“虚拟”链接并以编程方式设置其href,然后单击。链接不应该出现在屏幕上,因为它没有内容
<body>
<a href="#" id="csvDownload" download></a>
</body>
<script>
if( data.length == 10){
var lnk = document.getElementById("csvDownload");
var stored_data = data;
data = [];
console.log(stored_data);
var csv_file = ConvertToCSV(stored_data); //ConvertTOCSV is a function
lnk.href = csv_file;
lnk.click();
}
</script>
如果(data.length==10){
var lnk=document.getElementById(“csvDownload”);
存储的var_数据=数据;
数据=[];
console.log(存储的_数据);
var csv_file=ConvertToCSV(存储的_数据);//ConvertToCSV是一个函数
lnk.href=csv_文件;
lnk.click();
}
通过将文档位置更改为指向您创建的对象,您可以尝试这样做,但我在尝试为您创建一个快速示例时遇到的问题是,我似乎无法为文件提供可用的名称和扩展名。因此,所有下载的内容都是一个名为“下载”的文件,没有扩展名(不过,文件内容是正确的)
因此,如果您想寻找一种方法来为流指定名称和文件类型,您可以从以下内容开始-
document.location='data:Application/octet流,'+
编码组件(csv_文件)
但是我想说@Scott的答案是一个更好的方法。您可以通过将文档位置更改为指向您创建的对象来实现,但我在尝试为您创建一个快速示例时遇到的问题是,我似乎无法为文件提供可用的名称和扩展名。因此,所有下载的内容都是一个名为“下载”的文件,没有扩展名(不过,文件内容是正确的) 因此,如果您想寻找一种方法来为流指定名称和文件类型,您可以从以下内容开始- document.location='data:Application/octet流,'+ 编码组件(csv_文件)
但是我想说@Scott的答案是一个更好的方法。你为什么在那里使用| |条件?您可以使用“>=”大于或等于。。这可能就足够了。@ameenulla0007:我太傻了。@Popleak我很抱歉,但这怎么会是重复的呢?我清楚地知道如何通过点击按钮来做到这一点。我想知道一种不用点击按钮就可以完成的方法。虽然不完全相关,但您丢失了
数据的内容。设置stored\u data=data
不会创建data
的副本,它只是设置对同一对象的引用。然后,当您设置data=[]
时,所有先前的内容都将从两个变量中消失。相关:如果您知道如何通过单击按钮来执行此操作,那么是什么阻止您在If
块中使用相同的代码?但是当您想要执行if时?为什么要在那里使用| |条件?您可以使用“>=”大于或等于。。这可能就足够了。@ameenulla0007:我太傻了。@Popleak我很抱歉,但这怎么会是重复的呢?我清楚地知道如何通过点击按钮来做到这一点。我想知道一种不用点击按钮就可以完成的方法。虽然不完全相关,但您丢失了数据的内容。设置stored\u data=data
不会创建data
的副本,它只是设置对同一对象的引用。然后,当您设置data=[]
时,所有先前的内容都将从两个变量中消失。相关:如果您知道如何通过单击按钮来执行此操作,那么是什么阻止您在If
块中使用相同的代码?但是,当您想要执行if时?