考えてみれば当たり前なのですが……
起動の順番としては
1. main.js
2. index.html
3. index.htmlで読み出されたjs
という順で処理されます。
というわけで……addEventListner等々、自前のスクリプトはmain.jsに書いても無駄です。
実際のところ
main.js
'use strict'; const electron = require('electron'); const app = electron.app; // Module to control application life. const BrowserWindow = electron.BrowserWindow; // Module to create native browser window. // Report crashes to our server. electron.crashReporter.start(); // Keep a global reference of the window object, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. let mainWindow; // Quit when all windows are closed. app.on('window-all-closed', function() { // On OS X it is common for applications and their menu bar // to stay active until the user quits explicitly with Cmd + Q if (process.platform != 'darwin') { app.quit(); } }); // This method will be called when Electron has finished // initialization and is ready to create browser windows. app.on('ready', function() { // Create the browser window. mainWindow = new BrowserWindow({width: 640, height: 480}); mainWindow.loadURL(`file://${__dirname}/index.html`); // Emitted when the window is closed. 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 = null; }); });
index.html
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Hello World!</title> </head> <body> <script src="./app.js"></script> <webview id="foo" src="https://duckduckgo.com/" style="display:inline-block; width:320px; height:240px">...loading</webview> <p>str</p> <form> <input type="button" id="btn1" value="CLICKHERE"> <input type="button" value="<=" onClick="webview.goBack();"> </form> </body> </html>
app.js
onload = function(){ alert("done"); }; onload = function() { var btn1 = document.getElementById("btn1"); btn1.onclick = function(){ document.bgColor='#000000'; } var webview = document.getElementById("foo"); var indicator = document.querySelector(".indicator"); var loadstart = function() { indicator.innerText = "loading..."; } var loadstop = function() { indicator.innerText = ""; } webview.addEventListener("did-start-loading", loadstart); webview.addEventListener("did-stop-loading", loadstop); };