2013-11-25 99 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); 

... 
相關問題