【发布时间】:2020-02-06 11:10:41
【问题描述】:
我正在开发必须具有应用程序子窗口的电子项目。我为主窗口设置了nodeIntegration: true,我也想将它应用到子窗口,但由于某种原因我不能。我需要启用 nodeIntegration 因为我想在子窗口上使用它。
为了创建子窗口,我使用了电子中的window.open 函数并将 nodeIntegration 设置为 true,但子窗口上的状态仍然为 false。
这是我的代码:
if(content === 'main'){
let mainSheet = './sheets/main_sheet.html';
//open in proxy window
let readerWin = window.open(mainSheet, '', `
maxWidth=2048,
maxHeight=2048,
width=1920,
height=1080,
fullscreenable=true,
contextIsolation=1,
nodeIntegration=true,
frame: false`)
}
这是子窗口的错误 image
我想在子窗口中创建读写文件系统。当我将另一个文件加载到main_sheet.html 时,出现上述错误。
这个 main_sheet.html 文件:
<!DOCTYPE html>
<html>
<head>
....
<script src="../fileSystem/filesystem.js"></script>
...
</head>
<body>
.....
</body>
</html>
和 filesystem.js 文件:
const fs = require("fs");
let saveBTN = document.getElementById('save-data');
saveBTN.addEventListener('click', (e) => {
fs.writeFile("temp.txt", data, (err) => {
if (err) console.log(err);
console.log("Successfully Written to File.");
});
})
如何使用window.open 函数在子窗口上启用nodeIntegration,以便我可以在电子中使用读写?
【问题讨论】:
-
您是否尝试将 nodeIntegrationInSubFrames 或 nodeIntegrationInWorker 设置为 true(cf electronjs.org/docs/api/browser-window)?
-
我尝试在 main.js(主进程)上设置 nodeIntegration: true,如何设置 nodeIntegrationInSubFrames?
-
@AriefBudiPrasetyo 试试我的答案stackoverflow.com/a/58300341/12167785