右键菜单,使用remote模块
const { app, BrowserWindow } = require("electron"); const remote=require('@electron/remote/main'); remote.initialize(); const path = require("path"); const createWindow = () => { const mainWindow = new BrowserWindow({ width: 800, height: 600, webPreferences:{ nodeIntegration:true, //开启渲染进程中使用nodejs contextIsolation:false, //开启渲染进程中使用nodejs } }); //启动remote模块 remote.enable(mainWindow.webContents) //在渲染进程中开启调试模式 mainWindow.webContents.openDevTools() mainWindow.loadFile(path.join(__dirname, "index.html")); } //监听应用的启动事件 app.on("ready", createWindow) //监听窗口关闭的事件,关闭的时候退出应用,macOs 需要排除 app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit(); } }); //Macos 中点击 dock 中的应用图标的时候重新创建窗口 app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) { createWindow(); } });
渲染进程:index.js
const remote = require('@electron/remote') const Menu=remote.Menu; var menuContextTemplate=[ { label:"复制", role:"copy", click:()=>{ console.log("copy") } }, { label:"黏贴", role:"paste" }, { type: 'separator' }, //分隔线 { label:"其他功能", click:()=>{ console.log("其他功能") } }, { label:"文件", submenu:[ { label:"新建", accelerator:"ctrl+n", click:()=>{ console.log("Ctrl+N") } }, { label:"打开", accelerator:"ctrl+o", click:()=>{ console.log("Ctrl+O") } }, { type:"separator" }, { label:"保存" } ] }, ]; var menuBuilder=Menu.buildFromTemplate(menuContextTemplate); window.onload=()=>{ window.addEventListener("contextmenu",(e)=>{ console.log("鼠标点击了右键") e.preventDefault() menuBuilder.popup({ window:remote.getCurrentWindow() }) },false) }
留下您的脚步
最近评论