javascript - 使用 Electron 从 anchor 标记保存文件

标签 javascript electron

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

例如:

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

然后让 anchor 标记在点击时触发保存文件对话框?

我已经尝试使用 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);
    });
});

这是文档:

https://github.com/atom/electron/blob/master/docs/api/dialog.md#dialogshowsavedialogbrowserwindow-options-callback

关于javascript - 使用 Electron 从 anchor 标记保存文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30032924/

相关文章:

javascript - 使用javascript删除动态创建的组合框选项

javascript - Electron 中 MaterializeCSS 中的所有输入表单看起来都被粉碎了

webpack - Electron 会自动重新加载以适应主光源或渲染器电源的变化吗?

node.js - 使用 Electron 构建器设置 Electron 图标

javascript - mustache js 无法从 json 文件加载 View 作为数组

javascript - 如何检查 DOM 节点是否继承自构造函数?

javascript - 如何使用 knockoutJS 设置悬停和焦点的 css 类

javascript - 使用 jquery 或 javascript 从 json 变量数据获取值

angularjs - 将 forerunnerDb 引导到 angular-electron 应用程序中

selenium-webdriver - vue-cli3 + Electron + chromedriver + selenium-webdriver找不到元素