简体   繁体   中英

Why saveAs() in JavaScript does not work for me?

I need to save a graph to a JSON file. Before doing that, I wrote a very simple HTML/JavaScript to test it out (just use a simple string for the JSON).

Based on the suggestion in a Stack Overflow posting, I use saveAs() method. But it looks like saveAs() does not work and no file is created. I am using Internet Explorer and Window 10.

In order to debug it, I inserted 3 window.alert() calls. The first 2 window.alert() calls pop up correctly, however, the 3rd window.alert() call does not show up at all. So I am afraid that the code is aborted at the saveAs() call.

The following is my code:

<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>

I am wondering why saveAs() does not work for me? Am I missing something here? Do I need to add something to my computer in order to use saveAs() method?

Thank you very much for your advice!

You are a little bit error in saveAs. Code is given below:

 <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>

Also you can see this: http://eligrey.com/demos/FileSaver.js/

Convert into excel sheet using JavaScript

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM