Kontextmenüeinträge hinzufügen
Erstellen Sie benutzerdefinierte Kontextmenüeinträge, die beim Rechtsklick auf Webseiten, Bilder oder Links erscheinen und Aktionen der Erweiterung auslösen.
Kontextmenüeinträge hinzufügen ist eine kostenlose Browser Extensions Development (Chrome & Edge)-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Browser Extensions Development (Chrome & Edge)-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Browser Extensions Development (Chrome & Edge)-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
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!
Häufig gestellte Fragen
Ist die Lektion „Kontextmenüeinträge hinzufügen“ kostenlos?
Ja — der vollständige Text von „Kontextmenüeinträge hinzufügen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Browser Extensions Development (Chrome & Edge)-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Browser Extensions Development (Chrome & Edge)-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Kontextmenüeinträge hinzufügen“?
Erstellen Sie benutzerdefinierte Kontextmenüeinträge, die beim Rechtsklick auf Webseiten, Bilder oder Links erscheinen und Aktionen der Erweiterung auslösen. Du übst Browser Extensions Development (Chrome & Edge) mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Browser Extensions Development (Chrome & Edge) zu starten?
Keine Vorkenntnisse erforderlich. Browser Extensions Development (Chrome & Edge) auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Kontextmenüeinträge hinzufügen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Browser Extensions Development (Chrome & Edge)-Lektion Code schreiben und ausführen?
Ja. Jede Browser Extensions Development (Chrome & Edge)-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Kontextmenüeinträge hinzufügen
- Omnibox-Schlüsselwörter integrieren
- Auf Omnibox-Eingaben reagieren
- Tastenkürzel mit der Commands API