Aggiunta di elementi al menu contestuale
Create elementi personalizzati del menu contestuale, visualizzati quando gli utenti fanno clic con il pulsante destro del mouse su pagine web, immagini o link, per attivare azioni dell'estensione.
Aggiunta di elementi al menu contestuale è una lezione Browser Extensions Development (Chrome & Edge) gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Browser Extensions Development (Chrome & Edge), e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Browser Extensions Development (Chrome & Edge) include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
What are Context Menus?
Browser extensions can add custom items to the context menu, which appears when you right-click on a web page.
These items let users perform quick actions related to what they clicked on, like saving an image, translating selected text, or triggering a custom search.
Enabling Context Menus
Before your extension can create context menu items, you need to declare the "contextMenus" permission in your manifest.json file.
This permission tells the browser your extension intends to interact with the context menu API.
{ "manifest_version": 3,
"name": "My Menu Extension",
"version": "1.0",
"permissions": [
"contextMenus"
],
"background": {
"service_worker": "background.js"
}
}The `chrome.contextMenus` API
The chrome.contextMenus API is how your background service worker interacts with context menus.
It provides methods to manage menu items:
create(): To add a new menu item.update(): To change an existing item's properties.remove(): To delete a specific item.removeAll(): To clear all items added by your extension.
Creating Your First Item
To create a context menu item, use chrome.contextMenus.create(). You must provide a unique id and a title.
This example adds a simple item named "My First Item" to the general page context menu.
// background.js
chrome.runtime.onInstalled.addListener(() => {
chrome.contextMenus.create({
id: "myFirstItem",
title: "My First Item",
contexts: ["page"]
});
});Item Properties: ID & Title
Each context menu item needs a unique id. This ID helps you identify which item was clicked later.
The title is the text displayed in the menu. The contexts array specifies where the item should appear.
- id: A unique string identifier.
- title: The user-visible text for the menu item.
- contexts: An array of strings defining where the item shows up.
Responding to Clicks
After creating an item, you'll want to run code when a user clicks it. Use chrome.contextMenus.onClicked.addListener() to listen for these clicks.
The listener receives an info object with details about the click, including the menuItemId, which helps you identify which item was activated.
// background.js
chrome.runtime.onInstalled.addListener(() => {
chrome.contextMenus.create({
id: "logClickItem",
title: "Log This Click",
contexts: ["page"]
});
});
chrome.contextMenus.onClicked.addListener((info, tab) => {
if (info.menuItemId === "logClickItem") {
console.log("Item 'Log This Click' was clicked!");
// You can perform other actions here
}
});Context Types for Specific Elements
The contexts property is powerful! It allows you to control exactly where your menu item appears.
Common context types include:
"page": Right-click on any part of the page."selection": Right-click on selected text."link": Right-click on a hyperlink."image": Right-click on an image."video","audio": For media elements.
Example: Search Selected Text
Let's create an item that appears only when text is selected. When clicked, it will open a new tab to search that text on Google.
Notice the selectionText property in the info object when using the "selection" context.
// background.js
chrome.runtime.onInstalled.addListener(() => {
chrome.contextMenus.create({
id: "searchSelected",
title: "Search '%s' on Google", // %s is placeholder for selected text
contexts: ["selection"]
});
});
chrome.contextMenus.onClicked.addListener((info, tab) => {
if (info.menuItemId === "searchSelected" && info.selectionText) {
const query = encodeURIComponent(info.selectionText);
const url = `https://www.google.com/search?q=${query}`;
chrome.tabs.create({ url: url });
}
});Updating and Removing Items
You can dynamically change or remove context menu items after they've been created. This is useful for adapting to user preferences or page content.
chrome.contextMenus.update(id, properties): Changes properties like title or contexts.chrome.contextMenus.remove(id): Deletes a specific item.chrome.contextMenus.removeAll(): Deletes all items added by your extension.
Context Menu Challenge
Consider the following manifest.json and background script for an extension.
Which statements about the context menu items created are true?
// manifest.json
{
"manifest_version": 3,
"name": "Test Menu",
"version": "1.0",
"permissions": ["contextMenus"],
"background": {"service_worker": "background.js"}
}
// background.js
chrome.runtime.onInstalled.addListener(() => {
chrome.contextMenus.create({
id: "itemA",
title: "Action A",
contexts: ["page"]
});
chrome.contextMenus.create({
id: "itemB",
title: "Action B",
contexts: ["selection"]
});
chrome.contextMenus.create({
id: "itemC",
title: "Action C",
contexts: ["link"]
});
});Recap: Context Menus
You've learned how to add custom context menu items to your browser extension!
- Declare
"contextMenus"permission inmanifest.json. - Use
chrome.contextMenus.create()in your background script. - Specify
id,title, andcontextsfor each item. - Listen for clicks using
chrome.contextMenus.onClicked.addListener(). - Contexts like
"page","selection","link"allow precise targeting.
These skills enable you to add powerful, context-aware actions to your extension. Next, we'll explore integrating with the Omnibox!
Domande Frequenti
La lezione «Aggiunta di elementi al menu contestuale» è gratuita?
Sì — il testo completo di «Aggiunta di elementi al menu contestuale» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Browser Extensions Development (Chrome & Edge), passa a CoddyKit PRO. Il corso Browser Extensions Development (Chrome & Edge) include 4 lezioni in totale.
Cosa imparerò in «Aggiunta di elementi al menu contestuale»?
Create elementi personalizzati del menu contestuale, visualizzati quando gli utenti fanno clic con il pulsante destro del mouse su pagine web, immagini o link, per attivare azioni dell'estensione. Eserciti Browser Extensions Development (Chrome & Edge) con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Browser Extensions Development (Chrome & Edge)?
Non è richiesta alcuna esperienza precedente. Browser Extensions Development (Chrome & Edge) su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Aggiunta di elementi al menu contestuale»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Browser Extensions Development (Chrome & Edge)?
Sì. Ogni lezione Browser Extensions Development (Chrome & Edge) include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Aggiunta di elementi al menu contestuale
- Integrazione delle parole chiave nell'omnibox
- Risposta agli input dell'omnibox
- Scorciatoie da tastiera con la Commands API