【发布时间】:2021-09-29 12:53:37
【问题描述】:
我想通过js关闭Electron App。
"electron": "^13.1.7"
我仔细阅读了这些问题:
- Atom Electron - Close the window with javascript
- How to close electron app via javascript?
- Close Electron app on click event
但这些都不适合我。
以下所有测试均基于the offical electron-quick-start
-
根据上述问题的答案,我得到了这些代码:
index.html
<body>
<button id="close-app">
close
</button>
<script src="./renderer.js"></script>
</body>
main.js
const {BrowserWindow, remote} = require('electron')
...
app.whenReady().then(() => {
...
app.on('activate', function () {
...
document.getElementById("close-app").addEventListener("click", function (e) {
remote.getCurrentWindow().close()
})
})
})
没有任何影响或错误。
似乎代码从未运行过,我在addEventListener 上方添加了一个console.log('run'),控制台中没有打印任何内容。
-
根据document,我得到了这些代码:
(不改变the offical electron-quick-start,只改变preload.js和index.html)
index.html
同上
preload.js
const { app } = require('electron');
window.addEventListener('DOMContentLoaded', () => {
document.getElementById("close-app").addEventListener("click", function (e) {
app.quit();
})
})
只有Uncaught TypeError: Cannot read property 'quit' of undefined
那么,如何通过js关闭Electron App呢?
非常感谢任何人的帮助!
【问题讨论】:
-
您的按钮 id 是
close-app。尝试在 main.js 中将document.getElementById("close").addEventListener更改为document.getElementById("close-app").addEventListener -
我注意到您更新了问题!这是问题中的错字吗?还是它与您的实际代码匹配?
-
@phuzi 大意抱歉,我直接从我的项目中复制代码,还有很多其他代码可能会打扰您的注意。当 id 正确时,错误仍然存在。
标签: javascript node.js electron