简体   繁体   English

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

[英]node-webkit using window.open() to download a file open another window

I'm currently porting a nodejs / angular webapp to Windows using nodewebkit. 我目前正在使用nodewebkit将nodejs / angular webapp移植到Windows。 Everything has been working pretty well for now but I'm facing a litle problem when I want the user to download a file. 到目前为止,一切都运行良好,但是当我希望用户下载文件时,我遇到了一个小问题。

In order to start the download with the save file Dialog, I use a simple window.open(url) where url can be a link to any kind of files. 为了使用保存文件对话框开始下载,我使用一个简单的window.open(url) ,其中url可以是任何文件的链接。 This line actually do it's job and pop the window dialog for saving a file, but at the same time, a blank node-webkit page appears. 这行实际上完成了工作,然后弹出用于保存文件的窗口对话框,但是同时,出现了一个空白的node-webkit页面。

I've been trying to mess around with node-webkit for a while without managing to remove this blank page. 我一直在尝试弄乱node-webkit一段时间,而没有设法删除此空白页。

As anyone experienced the same kind of behavior ? 有人经历过同样的行为吗? I'll be interested in any lead, I'm not into the js stuff for long so I may have missed something obviouvs. 我会对任何潜在客户感兴趣,我很久没去研究js了,所以我可能错过了一些东西。

Have a nice wathever time of the day it is where you live ! 每天度过美好的时光,这就是您的住所!

a more better solution is found here 这里找到更好的解决方案

Step 1 In your html file, add a Input tag block like below: 步骤1在您的html文件中,添加如下所示的Input标签块:

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

Step 2 Add a new function in your javascript file like below: 步骤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();  
  }

Step 3 Save your file where ever you like by using saveFile(name,data) function like below: 步骤3使用如下所示的saveFile(name,data)函数将文件保存到任意位置:

...

_exportCSV="you data to save";

saveFile('#export_file',_exportCSV);

...

As questioner said to be working: 正如发问者所说的那样:

location.href = url

Is the correct usage. 是正确的用法。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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