Javascript 使用Electron从锚定标记保存文件

Javascript 使用Electron从锚定标记保存文件,javascript,electron,Javascript,Electron,是否可以使用常规的锚定标记指向打开保存文件对话框的文件?就像网络浏览器一样 例如: <a download href="documents/somefile.pdf">Download</a> 让锚定标记在单击时触发保存文件对话框 我试过使用file://absolute-path-to-the-dir/documents/somefile.pdf并且它希望在应用程序中打开文件,而不是下载文件 更新: 在比我写这个问题时使用的更高版本的Electron中,行为是我想

是否可以使用常规的锚定标记指向打开保存文件对话框的文件?就像网络浏览器一样

例如:

<a download href="documents/somefile.pdf">Download</a>

让锚定标记在单击时触发保存文件对话框

我试过使用
file://absolute-path-to-the-dir/documents/somefile.pdf
并且它希望在应用程序中打开文件,而不是下载文件

更新: 在比我写这个问题时使用的更高版本的Electron中,行为是我想要的,会打开一个窗口,要求用户保存文件


但是,如果是外部链接,并且希望仅为内部链接保留Electron窗口,并在默认操作系统选项中打开外部链接,Joshua Smith的回答正好可以做到这一点。

在脚本中,您可以使用对话框模块使用“保存文件”对话框:

var fs = require('fs');
var dialog = require('dialog');
dialog.showSaveDialog(options, function (filePath) {
    fs.writeFile(filePath, pdfContents, function (err) {
        if(err) console.error(err);
    });
});
以下是文件:


我所做的是双重的

mainWindow.webContents.on('new-window', function(event, url) {
    event.preventDefault();
    console.log("Handing off to O/S: "+url);
    shell.openExternal(url);
});
这样,每当我的应用程序中有一个页面想要打开一个新窗口时,它就会在实际的浏览器中出现。这也有利于打开PDF等


然后我只需确保所有下载链接都使用target=\u blank或window.open(),下载将在用户的浏览器中进行。

有没有找到解决方案?“我希望做完全相同的事情。”MobileSam目前还没有。我现在已经放弃了尝试。一旦我有更多的时间,我将再次尝试寻找答案。经过一些研究,我在这里找到了答案:对于那些对电子不熟悉的人:shell是必需的(“电子”)。shell;