Beschreibung
Mit der chrome.contextMenus
API können Sie Elemente zum Kontextmenü von Google Chrome hinzufügen. Sie können auswählen, auf welche Arten von Objekten sich Ihre Kontextmenü-Ergänzungen beziehen, z. B. Bilder, Hyperlinks und Seiten.
Berechtigungen
contextMenus
Nutzung
Kontextmenüelemente können in jedem Dokument (oder Frame in einem Dokument) angezeigt werden, auch in Dokumenten 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 beliebig viele Kontextmenüelemente erstellen. Wenn jedoch mehr als eines Ihrer Erweiterung gleichzeitig sichtbar ist, werden sie in Google Chrome automatisch in einem einzelnen ü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 16 × 16 Pixel großes Symbol für die Anzeige neben dem Menüelement angeben. 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 API-Beispiel für contextMenus 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“. 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 gelten möglicherweise Einschränkungen für die Unterstützung in einem Launcher-Kontextmenü.
Enum
"all"
"page"
"frame"
„selection“
„link“
"editable"
"image"
"video"
"audio"
"launcher"
"browser_action"
"page_action"
"action"
CreateProperties
Eigenschaften des neuen Kontextmenüelements.
Attribute
-
ausgewählt
boolean optional
Der Anfangsstatus eines Kästchens oder Optionsfelds:
true
für ausgewählt,false
für nicht ausgewählt. Es kann jeweils nur ein Optionsfeld einer Gruppe ausgewählt werden. -
contexts
[ContextType, ...ContextType[]] optional
Liste der Kontexte, in denen dieses Menüelement 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 einem der angegebenen Muster entspricht. Weitere Informationen zu Musterformaten finden Sie unter Übereinstimmungsmuster.
-
aktiviert
boolean optional
Gibt an, ob dieses Kontextmenüelement aktiviert oder deaktiviert ist. Die Standardeinstellung ist
true
. -
id
String optional
Die eindeutige ID, die diesem Artikel zugewiesen werden soll. Für Veranstaltungsseiten erforderlich. Darf nicht mit einer anderen ID für diese Erweiterung übereinstimmen.
-
parentId
String | Zahl optional
Die ID eines übergeordneten Menüpunkts. Dadurch wird das Element zu einem untergeordneten Element eines zuvor hinzugefügten Elements.
-
targetUrlPatterns
string[] optional
Ähnlich wie bei
documentUrlPatterns
werden Filter basierend auf demsrc
-Attribut der Tagsimg
,audio
undvideo
sowie demhref
-Attribut dera
-Tags angewendet. -
Titel
String optional
Der im Element anzuzeigende Text. Dieser ist erforderlich, sofern
type
nichtseparator
ist. Wenn der Kontextselection
ist, verwenden Sie%s
im String, um den ausgewählten Text anzuzeigen. Wenn der Wert dieses Parameters beispielsweise „Übersetze ‚%s‘ ins Lateinische“ lautet und der Nutzer das Wort „cool“ auswählt, lautet der Kontextmenüpunkt für die Auswahl „Übersetze ‚cool‘ ins Lateinische“. -
Typ
ItemType optional
Der Typ des Menüpunkts. Die Standardeinstellung ist
normal
. -
sichtbar
boolean optional
Gibt an, ob das Element im Menü sichtbar ist.
-
onclick
void optional
Eine Funktion, die aufgerufen wird, wenn auf das Menüelement geklickt wird. Diese Funktion ist in einem Service Worker nicht verfügbar. Stattdessen sollten Sie einen Listener für
contextMenus.onClicked
registrieren.Die
onclick
-Funktion sieht so aus:(info: OnClickData, tab: Tab) => {...}
-
Info
Informationen zum angeklickten Element und zum Kontext, in dem der Klick erfolgt ist.
-
Tabulatortaste
Details zum Tab, auf den geklickt wurde. 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
boolean optional
Ein Flag, das den Status eines Kontrollkästchens oder Optionsfelds nach dem Klicken angibt.
-
bearbeitbar
boolean
Ein Flag, das angibt, ob das Element bearbeitet werden kann (Texteingabe, Textbereich usw.).
-
frameId
number optional
Chrome 51 und höherDie ID des Frames des Elements, auf das geklickt wurde, um das Kontextmenü aufzurufen, sofern es sich in einem Frame befand.
-
frameUrl
String optional
Die URL des Frames des Elements, auf das geklickt wurde, um das Kontextmenü aufzurufen, 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
Einer der Werte „image“, „video“ oder „audio“, wenn das Kontextmenü für eines dieser Elemente aktiviert wurde.
-
String | Zahl
Die ID des angeklickten Menüpunkts.
-
pageUrl
String optional
Die URL der Seite, auf der auf den Menüpunkt geklickt wurde. Diese Property wird nicht festgelegt, wenn der Klick in einem Kontext erfolgt ist, in dem es keine aktuelle Seite gibt, z. B. in einem Kontextmenü des Launchers.
-
parentMenuItemId
String | Zahl optional
Die übergeordnete ID des angeklickten Elements, sofern 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
boolean optional
Ein Flag, das den Status eines Kästchens oder Optionsfelds angibt, bevor darauf geklickt wurde.
Attribute
ACTION_MENU_TOP_LEVEL_LIMIT
Die maximale Anzahl von Erweiterungselementen der obersten Ebene, die dem Kontextmenü einer Erweiterungsaktion hinzugefügt werden können. Alle Elemente darüber hinaus werden ignoriert.
Wert
6
Methoden
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
): number | string
Erstellt ein neues Kontextmenüelement. Wenn während der Erstellung ein Fehler auftritt, wird er möglicherweise erst erkannt, wenn der Erstellungs-Callback ausgelöst wird. Details finden Sie unter runtime.lastError
.
Parameter
-
createProperties
-
callback
Funktion optional
Der Parameter
callback
sieht 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 | Zahl
Die ID des zu entfernenden Kontextmenüelements.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 123 und höherPromises 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
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 123 und höherPromises 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 ein zuvor erstelltes Kontextmenüelement.
Parameter
-
id
String | Zahl
Die ID des zu aktualisierenden Artikels.
-
updateProperties
Objekt
Die zu aktualisierenden Attribute. Akzeptiert dieselben Werte wie die Funktion
contextMenus.create
.-
ausgewählt
boolean optional
-
contexts
[ContextType, ...ContextType[]] optional
-
documentUrlPatterns
string[] optional
-
aktiviert
boolean optional
-
parentId
String | Zahl optional
Die ID des Elements, das als übergeordnetes Element für dieses Element festgelegt werden soll. Hinweis: Ein Element kann nicht zum untergeordneten Element eines seiner eigenen untergeordneten Elemente werden.
-
targetUrlPatterns
string[] optional
-
Titel
String optional
-
Typ
ItemType optional
-
sichtbar
boolean optional
Chrome 62 und höherGibt an, ob das Element im Menü sichtbar ist.
-
onclick
void optional
Die
onclick
-Funktion sieht so aus:(info: OnClickData, tab: Tab) => {...}
-
InfoChrome 44 und höher
-
TabulatortasteChrome 44 und höher
Details zum Tab, auf den geklickt wurde. Dieser Parameter ist für Plattform-Apps nicht vorhanden.
-
-
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Ausgabe
-
Promise<void>
Chrome 123 und höherPromises 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 ein Kontextmenüelement geklickt wird.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(info: OnClickData, tab?: tabs.Tab) => void
-
Info
-
Tabulatortaste
tabs.Tab optional
-