为什么在JavaScript中saveAs()对我不起作用?

时间:2017-03-19 03:48:02

标签: javascript html json

我需要将图表保存到JSON文件中。在此之前,我编写了一个非常简单的HTML / JavaScript来测试它(只需使用一个简单的字符串作为JSON)。

根据Stack Overflow帖子中的建议,我使用saveAs()方法。但看起来saveAs()不起作用并且没有创建文件。我正在使用Internet Explorer和Window 10.

为了调试它,我插入了3个window.alert()调用。前2个window.alert()调用正确弹出,但是第3个window.alert()调用根本没有显示。所以我担心代码会在saveAs()调用中中止。

以下是我的代码:

<html>
<head>
<title>Save</title>
<script>

function save() 
{ 
window.alert("I am here 1");
var jsonBlob = new Blob([JSON.stringify("kiki")], { type: 'application/javascript;charset=utf-8' });
window.alert("I am here 2");
saveAs(jsonBlob, "testout.json");
window.alert("I am here 3");
} 

</script> 
</head>
<body> 
<form name="myform"> 
<input type="button" onClick="save();" value="Save">
</form> 
</body>
</html>

我想知道为什么saveAs()对我不起作用?我在这里错过了什么吗?我是否需要在计算机上添加一些内容才能使用saveAs()方法?

非常感谢您的建议!

2 个答案:

答案 0 :(得分:3)

你在saveAs中有点误。 代码如下:

 <html>
    <head>
    <title>Save</title>
    <script>

    function save() 
    { 
    window.alert("I am here 1");
    var jsonBlob = new Blob([JSON.stringify("kiki")], { type: 'application/javascript;charset=utf-8' });
    window.alert("I am here 2");
   var link=window.URL.createObjectURL(jsonBlob);
    window.location=link;
    window.alert("I am here 3");
    } 

    </script> 
    </head>
    <body> 
    <form name="myform"> 
    <input type="button" onClick="save();" value="Save">
    </form> 
    </body>
    </html>

您也可以看到:http://eligrey.com/demos/FileSaver.js/

答案 1 :(得分:0)

使用JavaScript转换为Excel工作表

var excelBlob = new Blob([response], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }, "excel.xlsx");     
var link=window.URL.createObjectURL(excelBlob);
window.location=link;