【发布时间】:2019-12-21 14:58:46
【问题描述】:
我在创建自定义窗口控件(如关闭、最小/最大和还原)时遇到问题,但 nodeIntegration 已关闭。我在渲染器的本地 html 文件中创建了按钮
main.js
mainWindow = new BrowserWindow({
x, y, width, height,
frame: false,
show: false,
webPreferences: { devTools: true }
});
mainWindow.loadURL(url.format({
protocol: 'file:',
slashes: true,
pathname: path.join(__dirname, 'assets', 'index.html')
}));
index.html
<div id='minimize' class='noSelect'></div>
<div id='maximize' class='noSelect'></div>
<div id='restore' class='noSelect'></div>
<div id='close' class='noSelect'></div>
<script type='text/javascript' src='../assets/js/index.js'></script>
默认情况下,nodeIntegration 处于关闭状态,因此index.js 无法访问 Node。但是,我需要能够向按钮添加功能以关闭、最小/最大和恢复窗口。
index.js
const { remote } = require('electron');
const mainWindow = remote.getCurrentWindow();
document.getElementById('close').addEventListener('click', () => {
mainWindow.close();
});
这不起作用,因为 nodeIntegration 被禁用。在本地页面中启用它是否安全?如果没有,这样做的安全方法是什么?
【问题讨论】:
标签: javascript node.js electron