电子 – 从菜单打开文件

我在我的电子应用程序中有一个button,显示“打开的文件”,当你点击它时打开的文件对话框出现,我可以select一个文件。

虽然,当我点击应用程序工具栏中的菜单项时,如何打开“打开文件对话框”框?

这是我在工具栏菜单子菜单中的标签:

label: 'Open', accelerator: 'CmdOrCtrl+O' 

我想做一些事情:

 label: 'Open', accelerator: 'CmdOrCtrl+O', role: 'open' 

但是没有“开放”的angular色。

我怎样才能实现一个打开打开文件对话框的点击事件?

Main.js打开文件部分:

 const ipc = require('electron').ipcMain const dialog = require('electron').dialog ipc.on('open-file-dialog', function (event) { dialog.showOpenDialog({ properties: ['openFile', 'openDirectory'] }, function (files) { if (files) event.sender.send('selected-file', files) }) }) 

index.js:

 const ipc = require('electron').ipcRenderer const selectDirBtn = document.getElementById('open') selectDirBtn.addEventListener('click', function (event) { ipc.send('open-file-dialog') }) ipc.on('selected-file', function (event, path) { document.getElementById('selected-file').innerHTML = `► ${path}` document.getElementById('selected-file2').innerHTML = `${path}` }) 

我有两个button,一个不可见的input文件和可见的样式button。

 <input type="file" id="fileId" style="display:none;" /> <button class="btn-lg btn-primary center-block" type="button" id="btnLoadFile">Load File</button> 

在js中,我设置了样式化的button点击事件来触发input文件点击事件。

 document.getElementById('btnLoadFile').addEventListener("click", function(){ document.getElementById('fileId').click(); }); 

然后,我有一个更改事件侦听器的input文件元素,即对文件做一些操作。

 document.getElementById('fileId').addEventListener('change', function(e){ //use the file here var files = e.target.files; var f = files[0]; { var reader = new FileReader(); var name = f.name; reader.onload = function (e) { console.log(e.target.result); }; reader.readAsBinaryString(f); } }); 

希望这可以帮助。