前提・実現したいこ
Electronを使って簡単な計算アプリを作っていますが、ボタンクリックで新規のウィンドウを生成するという機能の実装が上手くいきません、、
エラーの解決方法、また別の実装方法をご存じでしたらご教授お願いします。
発生している問題・エラーメッセージ
Uncaught TypeError: BrowserWindow is not a constructor at createResultWindow (index.html:59) at HTMLButtonElement.<anonymous> (index.html:77)
該当のソースコード
html
1 const ipcRenderer = require('electron').ipcRenderer; 2 3 const remote = require('electron'); 4 const {BrowserWindow} = remote; 5 6 let resultWindow; 7 function createResultWindow() { 8 resultWindow = new BrowserWindow({ ★59行目 9 width: 600, 10 height: 400, 11 webPreferences: { 12 nodeIntegration: true, // 13 contextIsolation: false,// 14 enableRemoteModule : true// 15 }, 16 }); 17 resultWindow.loadURL('file://' + __dirname + '/result.html'); 18 resultWindow.webContents.openDevTools(); 19 resultWindow.show();//不要かも 20 resultWindow.on('closed', function() { 21 resultWindow = null; 22 }); 23 } 24 25 document.getElementById('decision').addEventListener('click', ()=>{ 26 createResultWindow(); ★77行目 27 });
javascript
1'use strict'; 2 3const { webContents } = require('electron'); 4const electron = require('electron'); 5const app = electron.app; 6const BrowserWindow = electron.BrowserWindow; 7const ipcMain = electron.ipcMain; 8 9let mainWindow; 10 11function createMainWindow() { 12 mainWindow = new BrowserWindow({ 13 width: 600, 14 height: 400, 15 webPreferences: {//nodeIntegratuon変更 16 nodeIntegration: true, // 17 contextIsolation: false,// 18 enableRemoteModule : true// 19 }, 20 }); 21 mainWindow.loadURL('file://' + __dirname + '/index.html'); 22 mainWindow.webContents.openDevTools(); 23 mainWindow.on('closed', function() { 24 mainWindow = null; 25 }); 26} 27 28app.on('ready', function() { 29 // create window 30 createMainWindow(); 31}); 32 33app.on('window-all-closed', function() { 34 if (process.platform !== 'darwin') { 35 app.quit(); 36 } 37}); 38 39app.on('activate', function() { 40 if (mainWindow === null) { 41 createMainWindow(); 42 } 43});
試したこと
remoteモジュールの呼び出しの部分に問題があるのかと思い以下の方法で書き換えましたが同じようにエラーが発生しました。
html
1 const remote = electron.remote; 2 const BrowserWindow = remote.BrowserWindow;
補足情報(FW/ツールのバージョンなど)
開発環境
・Node.js 14.17.1
・Electron 13.1.4
初学者の為、質問方法や提示情報等に不備があったらすみません。
何卒宜しくお願い致します。
あなたの回答
tips
プレビュー