如何通过javascript关闭电子应用程序?

2024-06-25

我正在通过电子运行一个快速应用程序。

下面是main.js

   const electron = require("electron"),
          app = electron.app,
          BrowserWindow = electron.BrowserWindow;

    let mainWindow;

    function createWindow () {
      mainWindow = new BrowserWindow({
          width: 1200,
        height: 800,
        frame: false,
        kiosk: true
      });
      mainWindow.loadURL(`file://${__dirname}/index.html`)
     mainWindow.webContents.openDevTools();

      mainWindow.on("closed", function () {
        mainWindow = null;
      })
    }

    app.on("ready", createWindow);
    app.on("browser-window-created",function(e,window) {
      window.setMenu(null);
    });

    app.on("window-all-closed", function () {
      if (process.platform !== "darwin") {
        app.quit();
      }
    });



    app.on("activate", function () {
      if (mainWindow === null) {
        createWindow();
      }
    });

下面是视图中的一个按钮,单击后我希望它关闭应用程序

<button id="close-btn"><i class="fa fa-cube" aria-hidden="true"></i>&nbsp; Close application</button>

本质上我想在单击按钮后激活这部分代码

  app.on("window-all-closed", function () {
          if (process.platform !== "darwin") {
            app.quit();
          }
        });

您可以使用

const remote = require('electron').remote
let w = remote.getCurrentWindow()
w.close()

关闭您的应用程序。

如果你使用的是 jQuery

const remote = require('electron').remote
$('#close-btn').on('click', e => {
    remote.getCurrentWindow().close()
})

如果你使用的是 Vue.js

<template>
    <button @click="close"><i class="fa fa-cube" aria-hidden="true"></i>&nbsp; Close application</button>
</template>

<script>
    const remote = require('electron').remote

    export default{
        data(){
            return {
                w: remote.getCurrentWindow(),
            }
        },
        methods: {
            close() {
                this.w.close()
            }
        }
    }
</script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过javascript关闭电子应用程序? 的相关文章

  • 计算两列中两个总和的平均值,并将其显示在 JQGrid 的下一列中

    I m using Jqgrid with summery row at grouping level Now I want to know one thing that Is it possible to show average cal
  • 使用核心 Node.js 进行会话管理,无需 Express.js

    如何在核心 Node js 非express js 项目中处理 创建用于服务器端会话管理的中间件 我可以找到基于 Express 的项目的模块 但不能找到核心 Node js 的模块 请向我推荐任何用于非express js 项目的模块或中
  • RSA Java 加密和 Node.js 解密不起作用

    我有一个系统 需要在 javascript 中生成 RSA 密钥对 然后将公钥存储在服务器端的数据库中 作为字符串 然后 Java 中的服务器端将使用存储的公钥对字符串进行加密密钥并将其发送到客户端 客户端将使用私钥解密该字符串 我在客户端
  • jQuery:“$(this).next().next()”有效,但“$(this).next('.div')”无效

    好吧 我正在尝试将这组信息单独隐藏 这有效 arrow click function this next next slideToggle img class arrow src https via placeholder com 40 h
  • 将值传递给映射函数 - CouchDB

    我想知道是否可以将值传递给 couchDB 设计文档中的映射函数 例如 在下面的代码中 可以传递用户输入的值并使用该值来运行地图函数 也许我可以传递用户UserName当他们登录时 然后根据地图功能显示视图 function doc if
  • html/js 中从右到左和/或从上到下的文本?

    如何在浏览器中为用户输入创建从右到左和从上到下的文本字段 有没有本地方法可以做到这一点 或者也许有解决方法 从上到下可能像日语或象形文字 对于 RTL 文本字段 您可以使用 HTMLdir属性 如 ime Vidas 已经提到的 或 wit
  • 如何在 Chrome 中将 Set 转换为数组?

    如何将集合转换为数组 https stackoverflow com questions 20069828 how to convert set to array给出了将 Set 转换为 Array 的三个答案 目前在 Chrome 浏览器
  • 在 json 对象中执行 javascript 代码?

    有远吗 所以像这样 key1 val1 key2 val2 some code document getElementById someid innerHTML test 那么 some code 会在没有任何用户干预的情况下执行吗 No
  • 使用 mongoDB 重命名集合

    我无法重命名 mongoDB 中的集合 我可以看到它存在并且可以从中写入和读取数据 我已尝试使用节点 mongo 本机驱动程序进行以下操作 db collection mycollection renameCollection mynewc
  • 重复 Pinterest Facebook 邀请功能

    I m trying to duplicate Pinterest s Invite Friends functionality In case you haven t seen what it looks like it looks li
  • 将“http://”添加到尚未包含“http://”的 URL 前面

    我有一个input保存 URL 的字段 我希望这个保存的输入能够识别变量开头不存在 Http 但不知道从哪里开始 是否可以仅检查字符串的一部分 然后有一个在必要时追加的函数 如果您还想允许 https 我会使用如下正则表达式 if http
  • 如何在 Jenkinsfile 中增加 NPM package.json 的版本

    我正在尝试修改 Jenkinsfile 以在部署服务器之前更改 NPM 包的版本 我在部署方法上有这个 if env GIT COMMIT env GIT PREVIOUS COMMIT env GIT BRANCH origin deve
  • 抓取 Shopee API v4

    我有一个最终项目 其中我想要检索的数据是通过在shopee上抓取数据来获取的 但是当我在隐藏的API上抓取shopee时遇到问题 当我在Insomnia脚本上尝试时 脚本会运行 但是当我尝试时在本地或 google colab 脚本上 这是
  • 解析字符串:提取单词和短语 [JavaScript]

    我需要在以空格分隔的术语列表中支持确切的短语 用引号引起来 因此 用空格字符分割相应的字符串已经不够了 Example input foo bar lorem ipsum baz output foo bar lorem ipsum baz
  • express 和 socket.io - 声明和启动服务器

    我一直不明白下面的代码是如何等效的 Code 1 var app require express var server require http Server app var io require socket io listen serv
  • 从组件刷新/重新加载 ember 路由

    我有一个组件 它实际上是一个模式对话框 当我完成该对话框并按 确定 按钮时 我想留在打开该对话框的停留页面上 这并不难 但问题是该对话框更改了数据 我通过 REST 调用获取数据 因此我需要刷新已经所在的路线以反映数据更改 因为我是从组件中
  • Javascript - HTML Canvas 上的 Gecko 边框半径自适应(CSS border-radius)

    我试图弄清楚如何将 border radius css 属性的行为重现到 HTML 画布中 所以我已经在 J avascript 中做了一些事情 以便使用特定的半径 对于每个角 来计算给定形状的正确边界 如果需要的话 这是上一个问题 Gec
  • 如何拦截javascript中innerHTML的变化?

    我需要拦截网页内单元格内容的任何更改 以下代码显示 addEventListener 不起作用 function modifyText alert var el document getElementById mycell el inner
  • 如何从索引文件迭代多个导入的模块

    我有一个名为Polygons我在那里创建了一个index jsfile 以导出目录中的所有文件 它看起来像这样 export default as europe from europe export default as northAmer
  • 在用户单击之前图像不会绘制在画布上?

    我使用执行类似以下操作的函数绘制几张图像 context drawImage img width 2 1 height 2 1 width height 我读过 我需要等待图像加载后才能绘制它 如下所示 img onload functio

随机推荐

  • Oracle数据库中的自增主键

    我想在 SQL Server 的列中实现标识或自动递增值 CREATE TABLE RollingStock Id NUMBER IDENTITY 1 1 Name Varchar2 80 NOT NULL 如何才能做到这一点 正如 Orb
  • 为什么阴谋集团重新安装“总是危险的”?

    使用 Cabal 重新安装软件包时 通常会看到以下警告 警告 请注意 重新安装总是很危险的 无论如何继续 此消息背后的一些原因是什么 目前 重新安装软件包意味着破坏性地覆盖已安装的软件包 如果旧包对系统有任何反向依赖性 它们将不再工作 为了
  • VS 2013 和 MSBuild

    我最近升级到 Visual Studio 2013 这在使用 MSBuild API 或带有命令行参数的可执行文件 进行外部构建时导致了连续问题 Issue 1使用 MSBuild 构建时 它不会生成单元测试所需的假程序集 这会导致构建失败
  • 构建 Flask docker 镜像时分配端口

    我最近使用 Flask 创建了一个应用程序 并将 py 文件放入 docker 容器中 然而 我对人们分配端口的在线案例感到困惑 首先在我写的 py 文件的底部 if name main app run host 0 0 0 0 port
  • 使用表单传递数组和用户输入

    我在处理传递数组的表单时遇到困难 我在名为 product 的数组中包含了 5 个变量 a b c d e 然后将其传递到另一个框架使用表单以及需要用户输入值的输入 所以会同时传递一个数组和一个输入 那么我应该使用 post 还是 get
  • MonoTouch 错误:升级到 iOS 5.1 后“未安装 Apple iPhone SDK”

    我已将 iOS 5 0 1 升级到 5 1 并且使用 MonoTouch 5 2 5 和 MonoDevelop 2 8 6 5 当我在 MonoDevelop 中创建示例应用程序时 它显示错误 Apple iphone sdk 未安装 如
  • 如何显示带有排序下拉列表的页面?

    我有一个选择列表
  • 为什么在相同大小的类型之间进行强制转换时,reinterpret_cast 不强制使用 copy_n?

    根据cppreference com http en cppreference com w cpp language reinterpret cast reinterpret cast 通过重新解释底层位模式在类型之间进行转换 但是等等 这
  • 从用户访问令牌获取应用程序 ID(或验证令牌的源应用程序)

    我找到了这个question http facebook stackoverflow com questions 6816568 extract app id and user id from facebook access token 其
  • 快速计算幂(例如 2^11)[重复]

    这个问题在这里已经有答案了 可能的重复 实现基于整数的幂函数 pow int int 的最有效方法 https stackoverflow com questions 101439 the most efficient way to imp
  • Flask 上下文处理器函数

    按照 Flask 页面上的最小示例 我尝试构建一个上下文处理器 上下文处理器 py def inflect this def inflectorize number word return format number inflectoriz
  • 在android上使用正则表达式验证字符串

    我希望我的字符串不包含 and 我用这个代码 private static boolean IsMatch String s String pattern try Pattern patt Pattern compile pattern M
  • 如何在 vite svelte 中加载 env 进行生产

    所以我是 Vite 的新手 我将它用于我的 svelte 应用程序 我真的不明白这部分文档 在生产过程中 这些环境变量会被静态替换 因此 有必要始终使用完整的静态字符串来引用它们 例如 像 import meta env key 这样的动态
  • OpenGL 中的 VBO 到底是什么?

    我正在尝试了解 OpenGL 背后的理论 目前正在研究 VBO 到目前为止我的理解是 当我们声明一系列顶点时 比如说形成一个三角形基元的 3 个顶点 我们基本上不会将它们存储在任何地方 它们只是在代码中声明 但是 如果我们想将它们存储在某个
  • 警报 Json 对象

    我有以下 json 对象 我需要通过 javascript 提醒它 data empmenuid 1 empid null deptid 66 aliasid 66 firstname 66 lastname 66 sin 66 statu
  • 期货与承诺

    我对未来和承诺之间的区别感到困惑 显然 他们有不同的方法和内容 但实际用例是什么 Is it 当我管理一些异步任务时 我使用 future 来获取 未来 的值 当我是异步任务时 我使用 Promise 作为返回类型 以允许用户从我的 Pro
  • 为 Couch Base Server 1.8 和 2.0 构建 Erlang 客户端

    我们已经用过沙发基地服务器 http www couchbase com 在我们的产品中 它是一个内联网应用程序 其前端是纯JavaScript 然而我们使用Erlang OTP http erlang org对于业务逻辑 身份验证 Mne
  • 在循环中使用迭代器删除 unordered_set 中的元素

    请考虑以下代码 Class MyClass是一个自定义类 class MyClass public MyClass int v Val v int Val 那么下面的代码会导致Debug Assertion Failed在调用后的循环中it
  • 我们如何在jquery中添加css+动画?

    这是我正在尝试做的事情的一小段 why red a hover function this animate webkit transform scale 1 1 slow function this animate webkit trans
  • 如何通过javascript关闭电子应用程序?

    我正在通过电子运行一个快速应用程序 下面是main js const electron require electron app electron app BrowserWindow electron BrowserWindow let m