我有一个非常奇怪的错误。当我单击按钮以运行功能open()
时,该功能未运行(console.log
未记录任何内容)。但是,在开发人员工具中,当我进入控制台并运行open()
时,它似乎运行得很好。
open()
用于打开文件打开对话框。
这里是按钮:
<button class="w3-button" id="openButton" onclick="open();">Open</button>
open()
中的scripts.js
(由HTML文件引用):
//open file
function open() {
ipcRenderer.send('openFile', {});
console.log("wtf?");
//judging by absence of above statement on button click, this is probably a HTML problem...?
}
这是应该在main.js
中打开对话框的功能:
ipcMain.on('openFile', function () {
//show open dialog
dialog.showOpenDialog({
defaultPath: '~/',
filters: [
{name: 'Text Files', extensions: ['txt']},
{name: 'All Files', extensions: ['*']}
]
}, function() {
console.log("wtf?");
//open the file
fs.readFile();
});
});
答案 0 :(得分:0)
首先,问题是open
是reserved name
要解决您的问题,您要么
open
作为按钮的属性document.getElementById('openButton').open = () => {
ipcRenderer.send('openFile', {})
}
并在回调中调用它
<button class="w3-button" id="openButton" onclick="this.open()">Open</button>
document.getElementById('openButton').addEventListener('click', () => {
ipcRenderer.send('openFile', {})
}
很抱歉,我们无法重新制作整个答案。将open
添加到document
是一个丑陋的解决方法