在JavaScript中为csv实现save.As()对话框

在JavaScript中为csv实现save.As()对话框,javascript,php,jquery,html,csv,Javascript,Php,Jquery,Html,Csv,我正在尝试编写一个代码,将我的php数组转换为csv,然后打开一个下载对话框(save.As()),这样网站用户可以在单击html href链接后下载文件 在搜索了很多帖子之后,我已经可以用JavaScript找到一个解决方案,使我能够将php数组转换为csv,并在网页上显示结果,以检查它是否正常工作 我也努力让下载对话框工作,但到目前为止没有成功。我正在尝试FileSaver.js,但这一个对我不起作用。我更喜欢一个纯JavaScript解决方案,它可以在IE、Safari和Firefox上运

我正在尝试编写一个代码,将我的php数组转换为csv,然后打开一个下载对话框(save.As()),这样网站用户可以在单击html href链接后下载文件

在搜索了很多帖子之后,我已经可以用JavaScript找到一个解决方案,使我能够将php数组转换为csv,并在网页上显示结果,以检查它是否正常工作

我也努力让下载对话框工作,但到目前为止没有成功。我正在尝试FileSaver.js,但这一个对我不起作用。我更喜欢一个纯JavaScript解决方案,它可以在IE、Safari和Firefox上运行,而不需要额外的库

以下是我迄今为止将json对象转换为csv并在屏幕上显示结果的脚本(这主要基于so中找到的另一个脚本,但我无法再次找到源代码-如果有人知道,我很乐意在此处包含链接):


函数ConvertToCSV(objArray){
var array=typeof objArray!=“object”?JSON.parse(objArray):objArray;
var-str='';
对于(var i=0;i
在html中包含链接:

</form>
  <!-- Define "Download .csv link here" -->
  <a href="javascript:void(0)" onclick="download_csv_function();" >Get data as csv file</a>
</form>  
<body>
<pre id="csv"></pre>
</body>      
</form>
  <!-- Define "Download .csv link here" -->
  <a href="javascript:void(0)" onclick="download_csv_function();" >Get data as csv file</a>
</form>        


谢谢

多亏了这些有用的注释,我可以运行它,并将代码更新到使用FileSaver.js的最终版本。下面的语法“saveTextAs(数据,文件名)”解决了这个问题。它适用于Firefox和Safari(即我还没有检查)。除了FileSaver.js之外,还需要加载jQuery以使href链接正常运行

首先加载js库:

</script>
<!-- Load jQuery and FileSaver.js here -->
<script src="/path-to-jquery.js"></script>
<script src="/path-to-FileSaver.js"></script>
<script>

将json对象转换为csv并打开下载对话框的脚本(这主要基于SO中找到的另一个脚本,但我无法再次找到源代码-如果有人知道,我很乐意在此处包含链接):


函数ConvertToCSV(objArray){
var array=typeof objArray!=“object”?JSON.parse(objArray):objArray;
var-str='';
对于(var i=0;i
在html中包含链接:

</form>
  <!-- Define "Download .csv link here" -->
  <a href="javascript:void(0)" onclick="download_csv_function();" >Get data as csv file</a>
</form>  
<body>
<pre id="csv"></pre>
</body>      
</form>
  <!-- Define "Download .csv link here" -->
  <a href="javascript:void(0)" onclick="download_csv_function();" >Get data as csv file</a>
</form>        


谢谢大家的帮助

您是否尝试过Kanchu在这里的回答:?
我更喜欢纯JavaScript解决方案
-好吧,FileSaver.js是纯JavaScript解决方案,要获得与FileSaver.js相同的跨浏览器兼容性,您必须编写FileSaver.js-也许您可以解释一下FileSaver.js的哪些地方“不适合您”@icecub刚刚进行了一次快速的尝试,它现在对我不起作用,但会更详细地研究它。谢谢@Jaromanda我在JavaScript末尾添加了FileSaver github页面(“使用require保存文本”)示例中的代码,还加载了FileSaver.js和Blob.js脚本链接(),但没有打开下载对话框。我不知道为什么它不工作。你的浏览器开发工具控制台有错误吗?