【问题标题】:Close Electron frameless window not working关闭电子无框窗口不起作用
【发布时间】:2016-09-27 02:57:13
【问题描述】:

我正在使用电子 1.0 构建一个应用程序,不幸的是,我到处寻找指南和教程,没有人使用电子 1,因为它太新了。

我正在尝试通过单击我制作的按钮来关闭无框窗口。我知道该按钮有效,因为我已经检查以确保它可以做简单的事情(即更改一些文本或其他什么),但这仅在我使用内部 javascript 但我尝试使用外部 javascript 时。当我使用外部时,该函数永远不会被调用...

    const {remote} = require('electron');
    const {BrowserWindow} = require('electron').remote;

    document.getElementById("close-button").addEventListener("click", function (e) {
         var window = remote.getCurrentWindow();
         window.close();
    });

那是我的 javascript 文件。我也知道我正在正确链接文件,因为我可以使用 document.write() 并且它可以工作。

我在这里做错了什么?

非常感谢任何帮助!

编辑:添加远程线路。

虽然我的事件处理程序不适用于我的按钮还有另一个原因。此问题已关闭,答案已被接受。

【问题讨论】:

    标签: javascript electron


    【解决方案1】:

    我不知道您是否从发布的 sn-p 中省略了相关导入,但假设您没有 remote 将在您调用 remote.getCurrentWindow() 时未定义。如果您将const { remote } = require('electron'); 添加到您的 sn-p 的顶部,我认为您的点击处理程序将按预期工作。

    【讨论】:

    • 我确实忘记使用该行,但我添加了它,但仍然没有运气。点击没有任何反应。感谢您的建议
    • @ClaytonPerroni 如果这不起作用,那么为什么选择这个答案是正确的?如果它没有解决问题,请不要将其标记为答案。如果您找到了不同的解决方案,请创建一个答案并将其标记为正确,以便其他人受益。
    • @JimmyBoh 有人已经对此发表了评论,但我猜他们愤怒地删除了他们的 cmets。这确实解决了我的问题。关于我如何将函数作为外部 JS 文件调用存在问题。我使用了一种解决方法,我使用本地 js 函数来调用外部 js 函数并且它有效。这是正确的解决方案。
    • 那太好了。非常感谢您的澄清!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多