我在第二个文件(b.js(中都有所有的HTML处理程序。他们看起来像这样:
window.onload = function () {
let btn = window.getElementById('btn');
button.addEventListener('click', fn);
}
这很好,但是我想制作一个按钮以打开另一个窗口,因此我尝试在main.js中添加导出的方法。我的完整main.js如下:
const {app, BrowserWindow} = require('electron');
let mainWindow;
function createWindow () {
// Create the browser window.
mainWindow = new BrowserWindow({
width: 500,
height: 300,
frame: false,
transparent: true,
resizable: false,
webPreferences: {
nodeIntegration: true,
}
});
mainWindow.setResizable(false);
mainWindow.loadFile('index.html');
mainWindow.webContents.openDevTools();
mainWindow.on('closed', function () {
// Dereference the window object, usually you would store windows
// in an array if your app supports multi windows, this is the time
// when you should delete the corresponding element.
mainWindow.quit();
})
}
app.on('ready', createWindow);
module.exports = {
openMainScreen: function () {
mainWindow.loadFile("mainScreen.html");
mainWindow.resizeTo(1200, 800);
}
};
如果我想在 b.js
中使用 require(main.js)
,则我想:
Uncaught TypeError: Cannot read property 'on' of undefined
指向app.on('ready'...
。查看这篇文章:无法阅读电子JavaScript中未定义的属性,它说该应用程序正在启动两次。我该如何解决?
我修复的方式是使用内置的ipcmain的电子在与HTML一起渲染的JavaScript之间进行通信和启用应用程序的主要JavaScript。
https://electronjs.org/docs/api/ipc-main