const { BrowserWindow, Menu, MenuItem, ipcMain, app } = require('electron') const menu = new Menu() menu.append(new MenuItem({ label: 'Hello' })) menu.append(new MenuItem({ type: 'separator' })) menu.append(new MenuItem({ label: 'Electron', type: 'checkbox', checked: true })) let mainWindow = null function createWindow () { const windowOptions = { width: 600, height: 400, title: 'Manage Window State', webPreferences: { nodeIntegration: true } } mainWindow = new BrowserWindow(windowOptions) mainWindow.loadFile('index.html') mainWindow.on('closed', () => { mainWindow = null }) } app.on('ready', () => { createWindow() }) app.on('browser-window-created', (event, win) => { win.webContents.on('context-menu', (e, params) => { menu.popup(win, params.x, params.y) }) }) ipcMain.on('show-context-menu', (event) => { const win = BrowserWindow.fromWebContents(event.sender) menu.popup(win) })