,这是在渲染器过程中:
const {BrowserWindow} = require('electron').remote
const path = require('path')
const url = require('url')
const newWindowButton = document.getElementById('new-window-btn');
newWindowButton.addEventListener('click',(e)=>{
let win3 = new BrowserWindow();
win3.loadURL(url.format({
pathname: path.join(__dirname,'index3.html'),
protocol: "file",
slashes: true
}))
})
我无法在渲染器进程中打开新窗口,出现以下错误。 **未捕获到的TypeError:无法按原样分解'require(...)。remote'的属性'BrowserWindow'
undefined.**
at Object.<anonymous> (D:\ElectronTute\helloWorld\index1.js:4)
at Object.<anonymous> (D:\ElectronTute\helloWorld\index1.js:21)
at Module._compile (internal/modules/cjs/loader.js:1145)
at Object.Module._extensions..js (internal/modules/cjs/loader.js`enter code here`:1166)
at Module.load (internal/modules/cjs/loader.js:981)
at Module._load (internal/modules/cjs/loader.js:881)
at Function.Module._load (electron/js2c/asar.js:769)
at Module.require (internal/modules/cjs/loader.js:1023)
at require (internal/modules/cjs/helpers.js:77)
at index1.html:13
最佳答案
mainWindow = new BrowserWindow({
width: 1280,
height: 960,
webPreferences: {
nodeIntegration: true,
enableRemoteModule: true,
},
});
我相信您正在使用新版本的Electron。从v9版本开始,除非将remote
设置为true,否则不允许在渲染器上使用enableRemoteModule
。另外,为了通过使用
node_moduels
在渲染器上加载require()
,我们还需要同时启用nodeIntegration
。根据需要是 Node API之一。https://github.com/electron/electron/issues/21408
关于javascript - Electron JS-无法解构 'BrowserWindow'的 'require(…).remote'属性,因为它未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65877497/