繁体   English   中英

Electron.js:addEventListener() 不起作用,我没有收到任何错误

[英]Electron.js: addEventListener() doesn't work and I'm not getting any error

我正在尝试制作Electron应用程序。 我试图在一个按钮上添加一个事件侦听器以在renderer进程中单击,但是当我单击该按钮时没有任何反应。 我没有收到任何错误。

html

<script src="event.js"></script>
<header>
  <button type="button" class="quit-button">Quit</button>
</header>

js

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>之前。 是的,愚蠢的错误!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM