Ini*_*oya 6 javascript jquery menu electron
我正在尝试为我的Electron应用程序添加功能,允许用户在应用程序中打开文件,特别是纯文本文件.看完Electron文档后,我找到了这个页面.我将此代码添加到我的app.js文件中,我将其链接到我的文件中index.html.
var fs = require('fs');
var dialog = require('electron');
$openFile = $('#openBtn');
$editor = $('#editor');
$openFile.click(function(){
dialog.showOpenDialog(function(fileNames) {
if (fileNames === undefined) return;
var fileName = fileNames[0];
fs.readFile(fileName, 'utf-8', function (err, data) {
$editor.val(data);
});
});
});
Run Code Online (Sandbox Code Playgroud)
但是,当我运行它时,此错误出现在控制台中:Uncaught TypeError: dialog.showOpenDialog is not a function我尝试使用远程,但无济于事.
有谁知道如何解决这个问题?提前致谢
KBI*_*IIX 19
const {dialog} = require('electron').remote;
document.querySelector('#selectBtn').addEventListener('click', function (event) {
dialog.showOpenDialog({
properties: ['openFile', 'multiSelections']
}, function (files) {
if (files !== undefined) {
// handle files
}
});
});
Run Code Online (Sandbox Code Playgroud)
Air*_*One 11
在主进程中你可以使用
const {dialog} = require('electron');
dialog.showOpenDialog({properties: ['openFile'] }).then(function (response) {
if (!response.canceled) {
// handle fully qualified file name
console.log(response.filePaths[0]);
} else {
console.log("no file selected");
}
});
Run Code Online (Sandbox Code Playgroud)
响应看起来像:
{
canceled: false,
filePaths: [
'<fullpath>/<filename>'
]
}
Run Code Online (Sandbox Code Playgroud)