Chrome context menu for Electron browsers
Building a modern web browser requires including many features users have grown accustomed to. Context menus are a small, but noticeable feature when done improperly.
This module aims to provide a context menu with close to feature parity to that of Google Chrome.
npm install electron-chrome-context-menu
// ES imports
import buildChromeContextMenu from 'electron-chrome-context-menu'
// CommonJS
const buildChromeContextMenu = require('electron-chrome-context-menu').default
const { app } = require('electron')
app.on('web-contents-created', (event, webContents) => {
webContents.on('context-menu', (e, params) => {
const menu = buildChromeContextMenu({
params,
webContents,
openLink: (url, disposition) => {
webContents.loadURL(url)
}
})
menu.popup()
})
})
For a complete example, see the
electron-browser-shell
project.
options
Objectparams
Electron.ContextMenuParams - Context menu parameters emitted from the WebContents 'context-menu' event.webContents
Electron.WebContents - WebContents which emitted the 'context-menu' event.openLink(url, disposition, params)
- Handler for opening links.url
Stringdisposition
String - Can bedefault
,foreground-tab
,background-tab
, andnew-window
.params
Electron.ContextMenuParams
extensionMenuItems
Electron.MenuItem[] (optional) - Collection of menu items for active web extensions.labels
Object (optional) - Labels used to create menu items. Replace this if localization is needed.
MIT