下载文件后空白窗口不会自动关闭

时间:2020-09-24 07:52:04

标签: javascript electron

我有一个打开外部页面的Electron应用程序。 在此页面内,我有一个下载文件的按钮。 在普通浏览器上,当我单击下载按钮时,它将打开一个_blank选项卡并自动开始下载,然后立即关闭该选项卡。 但是,在Electron应用程序上,_blank选项卡会打开一个新窗口并询问下载位置,并且该窗口不会根据需要自动关闭。

如何在Electron上重现“正常”浏览器行为?

下载文件的代码是: window.open(url, '_blank', '');

谢谢

2 个答案:

答案 0 :(得分:2)

如果替换代码以使用虚拟链接元素下载文件怎么办?

var a = document.createElement("a");
a.href = url;
a.download = "filename";
a.click();

是否会导致相同的行为,还是可以接受的解决方法?

编辑:或者甚至更简单;将您的下载按钮替换为链接(您可以将其样式化为按钮):

<a href="your-data-uri" download="filename">

答案 1 :(得分:0)

这是一个老问题,但我最近才遇到同样的情况,并提出了以下解决方案:

 mainWindow.webContents.session.on('will-download', (event, item, webContents) => {
     item.once('done', (event, state) => {
        var wins = BrowserWindow.getAllWindows();
        for(var i=0;i<wins.length;i++){
           //avoid closing the main window
           if(wins[i].id !=1){
              wins[i].close();
           }           
        }
     }); 
  });
相关问题