在之前的文章我们介绍了一下Electron的这个remote模块,接下来我们继续说一下Electron的右键菜单的制作。

在我们日常我们使用的软件中都会存在右键菜单的情况,比如我们用到的浏览器,开发所用到的代码编辑器都有右键菜单,可以方便我们的日常操作,接下来我们就来看一下用Electron如何实现右键菜单,接上一章的目录:

接下来我们要在idnex.html 中使用右键菜单,右键菜单其实和我们之前所说过的顶部菜单栏其实是差不多的,所以我就引用了一下在介绍菜单栏时的一些代码并进行了改进,如下:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>hello world</title>
</head>
<body>
<div>
<button id="btn">点我打开其他页面</button>
<script> const {remote} = require('electron');
const pjson = require('./package.json'); let rightTemplate = [{
label: '设置',
submenu: [
{label: '快捷键设置'},
{label: '系统设置'}
]
}, {
label: '关于',
submenu: [
{
label: '关于Electron',
// 快捷键设置
accelerator: 'command+e',
// 绑定click方法
click: () => {
remote.dialog.showMessageBox({
message: '当前版本:' + pjson.version,
}).then(result => {
console.log(result)
})
}, },
{
label: '关于Node',
},
]
},]; window.addEventListener('contextmenu', (e) => {
e.preventDefault();
const menu = remote.Menu.buildFromTemplate(rightTemplate);
menu.popup({window:remote.getCurrentWindow()});
})
</script>
</div>
</body>
</html>

在上面的代码中,我们通过window.addEventListerner 来监听鼠标右击事件 contextmenu ,然后用到了我们上一章介绍的 remote 模块,因为我们是在渲染进程 idnex.html 中进行操作,所以必须要用到 remote 模块,我们定义了一个和之前讲到的菜单栏一样的一个菜单,并切有click事件,此次还添加来一个属性accelerator的属性,其实就是一个快捷键,由于本人用的是Mac,所以使用的是command的键盘按钮,相当于Windows的ctrl键,接下来我们看一下页面效果:

当我们单击鼠标右键时便会出现上面的菜单,我们可以点击 “关于Electron” 按钮或者直接使用快捷键 “command+e”,运行效果如下:

跟我们之前讲菜单栏时的效果是一样的,至此,我们便完成来一个简单的右键菜单任务,还是比较简单的。

如果我们去阅读Electron官方文档的话会发现里面还有很多的方法共我们使用,但是阅读官方文档还是很晦涩的,我们先从简单的慢慢学习,然后逐步深入,最后达到融汇贯通,本人也是从零开始学习Electron,共同进步!

最新文章

  1. 《锋利的jQuery(第2版)》笔记-第1章-认识jQuery
  2. 如何使用的Ue4自带的SQLiteSupport
  3. velocity导出word报错解决
  4. 编写 unix和 windows的 Scala 脚本
  5. JAVA堆外内存
  6. proxy解析
  7. java-web查询系统
  8. myeclipse-8.6.0下载
  9. 20169210《Linux内核原理与分析》第三周作业
  10. 初识lucene
  11. [转] SQL Server游标的使用
  12. css绝对定位、相对定位和文档流的那些事
  13. 中文代码示例之Vuejs入门教程(一)
  14. Docker学习系列(二)Docker初体验
  15. 在webpack里使用jquery.mCustomScrollbar插件
  16. 老铁啊,我同你讲, 这年头不会点 Git 真不行!!!
  17. 小程序2-基本架构讲解(一)JSON配置与详解
  18. noip 2018.10.14 模拟赛 砍树
  19. JavaScript之radio遍历
  20. [NOIP2018]旅行

热门文章

  1. 使用PD(Power Designer)设计数据库,并且生成可执行的SQL文件创建数据库(本文以SQL Server Management Studio软件执行为例)
  2. tp5的 LayUI分页样式实现
  3. Idea创建Scala的Maven项目
  4. BUAA_OO_2020_Unit3_总结博客
  5. 使用addEventListener绑定事件是关于this和event记录
  6. Java学习笔记7(IO)
  7. 006.OpenShift持久性存储
  8. 阿里巴巴--java多线程的两种实现方式,以及二者的区别
  9. ThinkPHP5使用PHPExcel实现数据导出功能
  10. day01---学习Mysql高级性能优化1