在IE11下从javascript生成CSV文件

我读了很多样本​​来从数据生成csv文件并推送下载以导出它。

let csvContent = ''; $.each(msg.d.LstObj[0], function (key, element) { csvContent += (csvContent === '' ? '' : ',') + key; }); csvContent += "\n"; msg.d.LstObj.forEach(function (rowArray) { var row = ''; $.each(rowArray, function (key, element) { row += (row === '' ? '' : ',') + element; }); csvContent += row + "\n"; }); var hiddenElement = document.createElement('a'); hiddenElement.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvContent); hiddenElement.target = '_blank'; hiddenElement.download = 'people.csv'; hiddenElement.click(); 

在Chrome FF下:ok在IE11下:没有下载只是一条消息问我:

voulez vous autoriser ce sitewebàouvrirune application

只有一个选择Windows商店…有人有想法??? 我把我的代码放在“网站de confiance”中……

这是我用来满足所有浏览器的块,包括IE 11,它对我很有用:

 if (window.navigator.msSaveBlob) { //Internet Explorer window.navigator.msSaveBlob(new Blob([result]), csvFileName); } else if (window.webkitURL != null) { //Google Chrome and Mozilla Firefox var a = document.createElement("a"); result = encodeURIComponent(result); a.href = "data:application/csv;charset=UTF-8," + result; a.download = csvFileName; a.click(); } else if (navigator.appName === "Microsoft Internet Explorer") { //Internet Explorer 8 and 9 var oWin = window.open(); oWin.document.write("sep=,\r\n" + result); oWin.document.close(); oWin.document.execCommand("SaveAs", true, csvFileName); oWin.close(); } else { //Everything Else window.open(result); }