refresh date: 2026-09-25 robots: noindex
Beschreibung
Mit der chrome.contextMenus API können Sie dem Kontextmenü von Google Chrome Elemente hinzufügen. Sie können auswählen, für welche Arten von Objekten Ihre Kontextmenü-Ergänzungen gelten sollen, z. B. Bilder, Hyperlinks und Seiten.
Berechtigungen
contextMenusNutzung
Kontextmenüelemente können in jedem Dokument (oder Frame innerhalb eines Dokuments) angezeigt werden, auch in solchen mit file://- oder chrome://-URLs. Wenn Sie festlegen möchten, in welchen Dokumenten Ihre Elemente angezeigt werden können, geben Sie das Feld documentUrlPatterns an, wenn Sie die Methode create() oder update() aufrufen.
Sie können so viele Kontextmenüelemente erstellen, wie Sie benötigen. Wenn jedoch mehr als ein Element Ihrer Erweiterung gleichzeitig sichtbar ist, werden sie in Google Chrome automatisch in einem einzigen übergeordneten Menü zusammengefasst.
Manifest
Sie müssen die Berechtigung „contextMenus“ im Manifest Ihrer Erweiterung deklarieren, um die API verwenden zu können. Außerdem sollten Sie ein Symbol mit 16 × 16 Pixeln angeben, das neben dem Menüpunkt angezeigt wird. Beispiel:
{
"name": "My extension",
...
"permissions": [
"contextMenus"
],
"icons": {
"16": "icon-bitty.png",
"48": "icon-small.png",
"128": "icon-large.png"
},
...
}
Beispiele
Wenn Sie diese API ausprobieren möchten, installieren Sie das contextMenus API-Beispiel aus dem Repository chrome-extension-samples.
Typen
ContextType
Die verschiedenen Kontexte, in denen ein Menü angezeigt werden kann. Die Angabe von „all“ entspricht der Kombination aller anderen Kontexte mit Ausnahme von „launcher“ und „tab“. Der Kontext „launcher“ wird nur von Apps unterstützt und dient dazu, dem Kontextmenü, das beim Klicken auf das App-Symbol im Launcher/in der Taskleiste/im Dock usw. angezeigt wird, Menüpunkte hinzuzufügen. Auf verschiedenen Plattformen kann es Einschränkungen hinsichtlich der tatsächlichen Unterstützung in einem Launcher-Kontextmenü geben.
Enum
"all"
"page"
"frame"
"selection"
"link"
"editable"
"image"
"video"
"audio"
"launcher"
"action"
Gilt für das Kontextmenü der Aktion der Erweiterung (Symbol in der Symbolleiste).
"tab"
Gilt für das Kontextmenü eines Tabs in der Tableiste.
CreateProperties
Eigenschaften des neuen Kontextmenüeintrags.
Attribute
-
ausgewählt
Boolesch optional
Der Anfangszustand eines Kästchens oder Optionsfelds:
truefür ausgewählt,falsefür nicht ausgewählt. In einer Gruppe kann jeweils nur ein Optionsfeld ausgewählt werden. -
contexts
[ContextType, ...ContextType[]] optional
Liste der Kontexte, in denen dieser Menüpunkt angezeigt wird. Die Standardeinstellung ist
['page']. -
documentUrlPatterns
string[] optional
Beschränkt das Element so, dass es nur auf Dokumente oder Frames angewendet wird, deren URL mit einem der angegebenen Muster übereinstimmt. Weitere Informationen zu Musterformaten finden Sie unter Übereinstimmungsmuster.
-
aktiviert
Boolesch optional
Gibt an, ob dieser Kontextmenüpunkt aktiviert oder deaktiviert ist. Die Standardeinstellung ist
true. -
id
String optional
Die eindeutige ID, die diesem Element zugewiesen werden soll. Erforderlich für Veranstaltungsseiten. Darf nicht mit einer anderen ID für diese Erweiterung identisch sein.
-
parentId
String | Zahl optional
Die ID eines übergeordneten Menüpunkts. Dadurch wird der Menüpunkt zu einem untergeordneten Element eines zuvor hinzugefügten Menüpunkts.
-
targetUrlPatterns
string[] optional
Ähnlich wie
documentUrlPatterns, filtert basierend auf dem Attributsrcder Tagsimg,audioundvideosowie dem Attributhrefder Tagsa. -
Titel
String optional
Der Text, der im Element angezeigt werden soll. Dies ist erforderlich, außer
typeistseparator. Wenn der Kontextselectionist, verwenden Sie%sinnerhalb des Strings, um den ausgewählten Text anzuzeigen. Wenn der Wert dieses Parameters beispielsweise „Translate ‚%s‘ to Pig Latin“ lautet und der Nutzer das Wort „cool“ auswählt, lautet der Kontextmenüeintrag für die Auswahl „Translate ‚cool‘ to Pig Latin“. -
Typ
ItemType optional
Der Typ des Menüpunkts. Die Standardeinstellung ist
normal. -
sichtbar
Boolesch optional
Gibt an, ob das Element im Menü sichtbar ist.
-
onclick
void optional
Eine Funktion, die aufgerufen wird, wenn auf den Menüpunkt geklickt wird. Diese Option ist in einem Service Worker nicht verfügbar. Registrieren Sie stattdessen einen Listener für
contextMenus.onClicked.Die Funktion
onclicksieht so aus:(info: OnClickData, tab: Tab) => {...}
-
Info
Informationen zum angeklickten Element und zum Kontext, in dem der Klick erfolgt ist.
-
Tabulatortaste
Die Details des Tabs, auf dem der Klick stattgefunden hat. Dieser Parameter ist für Plattform-Apps nicht vorhanden.
-
ItemType
Der Typ des Menüpunkts.
Enum
"normal"
"checkbox"
"radio"
"separator"
OnClickData
Informationen, die gesendet werden, wenn auf ein Kontextmenüelement geklickt wird.
Attribute
-
ausgewählt
Boolesch optional
Ein Flag, das den Status eines Kästchens oder Optionsfelds nach dem Anklicken angibt.
-
bearbeitbar
boolean
Ein Flag, das angibt, ob das Element bearbeitbar ist (Texteingabe, Textbereich usw.).
-
frameId
number optional
Chrome 51 oder höherDie ID des Frames des Elements, in dem das Kontextmenü angeklickt wurde, falls es sich in einem Frame befand.
-
frameUrl
String optional
Die URL des Frames des Elements, in dem auf das Kontextmenü geklickt wurde, sofern es sich in einem Frame befand.
-
linkUrl
String optional
Wenn das Element ein Link ist, die URL, auf die es verweist.
-
mediaType
String optional
„image“, „video“ oder „audio“, wenn das Kontextmenü für eines dieser Elemente aktiviert wurde.
-
string | number
Die ID des angeklickten Menüpunkts.
-
pageUrl
String optional
Die URL der Seite, auf der auf den Menüpunkt geklickt wurde. Dieses Attribut wird nicht festgelegt, wenn der Klick in einem Kontext erfolgt, in dem es keine aktuelle Seite gibt, z. B. in einem Kontextmenü des Launchers.
-
parentMenuItemId
String | Zahl optional
Die übergeordnete ID des angeklickten Elements, falls vorhanden.
-
selectionText
String optional
Der Text für die Kontextauswahl, falls vorhanden.
-
srcUrl
String optional
Wird für Elemente mit einer „src“-URL angezeigt.
-
wasChecked
Boolesch optional
Ein Flag, das den Status eines Kästchens oder Optionsfelds vor dem Klicken angibt.
Attribute
ACTION_MENU_TOP_LEVEL_LIMIT
Die maximale Anzahl von Erweiterungselementen auf oberster Ebene, die einem Kontextmenü für Erweiterungsaktionen hinzugefügt werden können. Alle Satzpaare darüber hinaus werden ignoriert.
Wert
6
Methoden
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
): number | string
Erstellt einen neuen Kontextmenüeintrag. Wenn während der Erstellung ein Fehler auftritt, wird er möglicherweise erst erkannt, wenn der Erstellungs-Callback ausgelöst wird. Details finden Sie in runtime.lastError.
Parameter
-
createProperties
-
callback
function optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
number | string
Die ID des neu erstellten Elements.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
callback?: function,
): Promise<void>
Entfernt ein Kontextmenüelement.
Parameter
-
string | number
Die ID des zu entfernenden Kontextmenüelements.
-
callback
function optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 123 und höherWird aufgelöst, wenn das Kontextmenü entfernt wurde.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
removeAll()
chrome.contextMenus.removeAll(
callback?: function,
): Promise<void>
Entfernt alle Kontextmenüelemente, die von dieser Erweiterung hinzugefügt wurden.
Parameter
-
callback
function optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 123 und höherWird aufgelöst, wenn die Entfernung abgeschlossen ist.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
): Promise<void>
Aktualisiert einen zuvor erstellten Kontextmenüeintrag.
Parameter
-
id
string | number
Die ID des zu aktualisierenden Elements.
-
updateProperties
Objekt
Die zu aktualisierenden Attribute. Akzeptiert dieselben Werte wie die Funktion
contextMenus.create.-
ausgewählt
Boolesch optional
-
contexts
[ContextType, ...ContextType[]] optional
-
documentUrlPatterns
string[] optional
-
aktiviert
Boolesch optional
-
parentId
String | Zahl optional
Die ID des Elements, das zum übergeordneten Element dieses Elements werden soll. Hinweis: Sie können ein Element nicht als untergeordnetes Element eines seiner eigenen Nachfolger festlegen.
-
targetUrlPatterns
string[] optional
-
Titel
String optional
-
Typ
ItemType optional
-
sichtbar
Boolesch optional
Chrome 62 oder höherGibt an, ob das Element im Menü sichtbar ist.
-
onclick
void optional
Die Funktion
onclicksieht so aus:(info: OnClickData, tab: Tab) => {...}
-
InfoChrome 44 oder höher
-
TabulatortasteChrome 44 oder höher
Die Details des Tabs, auf dem der Klick stattgefunden hat. Dieser Parameter ist für Plattform-Apps nicht vorhanden.
-
-
-
callback
function optional
Der Parameter
callbacksieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 123 und höherWird aufgelöst, wenn das Kontextmenü aktualisiert wurde.
Promises werden nur für Manifest V3 und höher unterstützt. Auf anderen Plattformen müssen Callbacks verwendet werden.
Ereignisse
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
Wird ausgelöst, wenn auf einen Kontextmenüpunkt geklickt wird.
Parameter
-
callback
Funktion
Der Parameter
callbacksieht so aus:(info: OnClickData, tab?: tabs.Tab) => void
-
Info
-
Tabulatortaste
tabs.Tab optional
-