我想做一个Electron应用。我试图在渲染器过程中为点击按钮添加一个事件监听器,但是当我点击按钮时,什么都没有发生。我不能得到任何错误。
<script src="event.js"></script>
<header>
<button type="button" class="quit-button">Quit</button>
</header>
const {remote} = require('electron');
button = document.getElementById('quit-button');
button.addEventListener('click', () => {
console.log('quit');
remote.app.quit();
});
如果你只有一个按钮,那么。
const remote = require('electron');
qbutton = document.getElementsByClassName('quit-button')[0];
qbutton.addEventListener('click', function() {
console.log('quit');
remote.app.quit();
});
你不需要任何迭代。
问题出在HTML中。这个 <script>
必须是在 <button>
否则Javascript会在按钮创建之前运行。
<body>
<header>
<button class="quit-button">Quit</button>
</header>
<script src="event.js"></script>
</body>
尝试移动你的 <button>
签入 <body>
标签。
按钮标签是不允许放在头部的。当我把按钮移到正文中时,它完美地工作了。
导入和关闭应用程序的方法没有做对。你应该按照以下方法来做。
const remote = require('electron').remote
let qbutton = document.getElementsByClassName('quit-button');
for (var i = 0; i < qbutton.length; i++) {
qbutton[i].addEventListener('click', function () {
console.log('quit');
remote.getCurrentWindow().close()
});
}
(代表问题作者发布的解决方案,要移到答题空间).
问题解决了。问题出在HTML上,我把它的 <script>
在...之前 <button>
. 是的,愚蠢的错误!