node-webkit使用window.open()下载文件打开另一个窗口

时间:2013-11-25 22:13:25

标签: javascript node-webkit

我目前正在使用nodewebkit将nodejs / angular webapp移植到Windows。现在一切都运行良好,但当我希望用户下载文件时,我遇到了一个小问题。

为了使用保存文件对话框开始下载,我使用一个简单的window.open(url),其中url可以是任何类型文件的链接。这行实际上是它的工作并弹出窗口对话框来保存文件,但同时出现一个空白的node-webkit页面。

我一直在尝试使用node-webkit一段时间,而无需删除此空白页面。

任何人都经历过同样的行为吗? 我会对任何领导感兴趣,我不会长时间进入js的东西,所以我可能错过了一些显而易见的东西。

有一个美好的监视时间,它是你住的地方!

2 个答案:

答案 0 :(得分:1)

找到了更好的解决方案here

步骤1在您的html文件中,添加如下所示的输入标记块:

<input id="export_file" type="file" nwsaveas style="display:none" nwworkingdir=""/>

步骤2在您的javascript文件中添加一个新功能,如下所示:

function saveFile(name,data) {
    var chooser = document.querySelector(name);
    chooser.addEventListener("change", function(evt) {
      console.log(this.value); // get your file name
     var fs = require('fs');// save it now
fs.writeFile(this.value, data, function(err) {
    if(err) {
       alert("error"+err);
    }
});
    }, false);

    chooser.click();  
  }

步骤3使用如下所示的saveFile(名称,数据)功能将文件保存到您喜欢的位置:

...

_exportCSV="you data to save";

saveFile('#export_file',_exportCSV);

...

答案 1 :(得分:0)

提问者说要工作:

location.href = url

是否正确使用。