2013-11-25 62 views
0

我正在使用nodewebkit将nodejs/angular webapp移植到Windows。现在一切都一直很好,但是当我希望用户下载文件时,我正面临一个棘手的问题。node-webkit使用window.open()下载文件打开另一个窗口

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

我一直在尝试在node-webkit中乱用一段时间而没有管理删除这个空白页面。

由于任何人都经历过同样的行为? 我会对任何潜在客户感兴趣,因为我可能错过了某些明显的东西。

有一天,它是你住的地方的一个很好的wathever时间!

+1

这对'的预期行为的window.open()'。阅读此:https://developer.mozilla.org/en-US/docs/Web/API/Window.open – melancia

+0

好吧,所以我没有想到这里明显的东西... 使用'location.href = url'而不是似乎做的伎俩。非常感谢 ! – Furzel

+1

你应该把自己的评论作为回答,并接受它,以便人们可以看到它的解决。 ;) – 2014-03-05 14:10:24

回答

0

正如提问说是工作:

location.href = url 

是正确的用法。

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的(名字,data)函数象下面这样:

... 

_exportCSV="you data to save"; 

saveFile('#export_file',_exportCSV); 

... 
相关问题