Beschreibung
Mit der chrome.contextMenus
API können Sie dem Kontextmenü von Google Chrome Elemente hinzufügen. Sie können auswählen, auf welche Arten von Objekten die Ergänzungen im Kontextmenü angewendet werden sollen, z. B. auf Bilder, Hyperlinks und Seiten.
Berechtigungen
contextMenus
Sie müssen die Berechtigung "contextMenus"
im Manifest Ihrer Erweiterung deklarieren, um die API verwenden zu können. Außerdem solltest du ein Symbol mit einer Größe von 16 × 16 Pixeln angeben, das neben dem Menüpunkt angezeigt werden soll. Beispiel:
{
"name": "My extension",
...
"permissions": [
"contextMenus"
],
"icons": {
"16": "icon-bitty.png",
"48": "icon-small.png",
"128": "icon-large.png"
},
...
}
Konzepte und Verwendung
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 Methoden create()
oder update()
aufrufen.
Sie können beliebig viele Kontextmenüpunkte erstellen. Wenn jedoch mehrere Elemente Ihrer Erweiterung gleichzeitig sichtbar sind, werden sie in Google Chrome automatisch in einem übergeordneten Menü minimiert.
Beispiele
Wenn Sie diese API ausprobieren möchten, installieren Sie das Beispiel für die contextMenus API aus dem Repository chrome-extension-samples.
Typen
ContextType
Die verschiedenen Kontexte, in denen ein Menü angezeigt werden kann. Die Angabe von „alle“ 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 tatsächlich in einem Launcher-Kontextmenü unterstützten Funktionen.
Enum
"alle"
"page"
"frame"
„selection“
"link"
„editable“
"image"
"video"
„audio“
"launcher"
"browser_action"
"page_action"
"action"
CreateProperties
Eigenschaften des neuen Kontextmenüelements.
Attribute
-
ausgewählt
boolescher Wert optional
Der Anfangsstatus eines Kästchens oder Optionsfelds:
true
für ausgewählt,false
fü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
Das Element wird nur auf Dokumente oder Frames angewendet, deren URL mit einem der angegebenen Muster übereinstimmt. Weitere Informationen zu Musterformaten finden Sie unter Übereinstimmungsmuster.
-
aktiviert
boolescher Wert 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. Sie 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
basieren diese Filter auf demsrc
-Attribut der Tagsimg
,audio
undvideo
sowie demhref
-Attribut der Tagsa
. -
Titel
String optional
Der im Artikel anzuzeigende Text. Diese Angabe ist erforderlich, es sei denn,
type
istseparator
. Wenn der Kontextselection
ist, verwenden Sie%s
innerhalb des Strings, um den ausgewählten Text anzuzeigen. Wenn der Wert dieses Parameters beispielsweise „%s in Pig Latin übersetzen“ lautet und der Nutzer das Wort „cool“ auswählt, lautet der Kontextmenüpunkt für die Auswahl „Cool in Pig Latin übersetzen“. -
Typ
ItemType optional
Der Typ des Menüpunkts. Die Standardeinstellung ist
normal
. -
sichtbar
boolescher Wert optional
Gibt an, ob der Artikel im Menü angezeigt wird.
-
onclick
void optional
Eine Funktion, die aufgerufen wird, wenn auf den Menüpunkt 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
Die Details zum Tab, auf dem der Klick erfolgt ist. 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 einen Kontextmenüpunkt geklickt wird.
Attribute
-
ausgewählt
boolescher Wert optional
Ein Flag, das den Status eines Kästchens oder Optionsfelds angibt, nachdem darauf geklickt wurde.
-
bearbeitbar
boolean
Ein Flag, das angibt, ob das Element bearbeitbar ist (Texteingabe, Textfeld usw.).
-
frameId
number optional
Chrome 51 und höherDie ID des Frames des Elements, auf das das Kontextmenü angeklickt wurde, falls es sich in einem Frame befand.
-
frameUrl
String optional
Die URL des Frames des Elements, auf das das Kontextmenü angeklickt wurde, sofern es sich in einem Frame befand.
-
linkUrl
String optional
Wenn es sich bei dem Element um einen Link handelt, die URL, auf die er verweist.
-
mediaType
String optional
„image“, „video“ oder „audio“, wenn das Kontextmenü für einen dieser Elementtypen 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, in dem es keine aktuelle Seite gibt, z. B. in einem Launcher-Kontextmenü.
-
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
Ist für Elemente mit einer „src“-URL vorhanden.
-
wasChecked
boolescher Wert 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 einem Kontextmenü für Erweiterungsaktionen hinzugefügt werden können. Alle Elemente darüber hinaus werden ignoriert.
Wert
6
Methoden
create()
chrome.contextMenus.create(
createProperties: CreateProperties,
callback?: function,
)
Erstellt ein neues Kontextmenüelement. Wenn während der Erstellung ein Fehler auftritt, wird er möglicherweise erst beim Auslösen des Rückrufs erkannt. Details findest du unter runtime.lastError
.
Parameter
-
createProperties
-
callback
function optional
Der Parameter
callback
sieht so aus:() => void
Gibt Folgendes zurück:
-
Zahl | String
Die ID des neu erstellten Artikels.
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
callback?: function,
)
Entfernt ein Kontextmenüelement.
Parameter
-
String | Zahl
Die ID des zu entfernenden Kontextmenüpunkts.
-
callback
function optional
Der Parameter
callback
sieht so aus:() => void
Gibt Folgendes zurück:
-
Promise<void>
Chrome 123 und höherVersprechen werden in Manifest V3 und höher unterstützt, aber Callbacks sind für die Abwärtskompatibilität verfügbar. Sie können nicht beide für denselben Funktionsaufruf verwenden. Das Versprechen wird mit demselben Typ aufgelöst, der an den Rückruf übergeben wird.
removeAll()
chrome.contextMenus.removeAll(
callback?: function,
)
Entfernt alle Kontextmenüelemente, die von dieser Erweiterung hinzugefügt wurden.
Parameter
-
callback
function optional
Der Parameter
callback
sieht so aus:() => void
Gibt Folgendes zurück:
-
Promise<void>
Chrome 123 und höherVersprechen werden in Manifest V3 und höher unterstützt, aber Callbacks sind für die Abwärtskompatibilität verfügbar. Sie können nicht beide für denselben Funktionsaufruf verwenden. Das Versprechen wird mit demselben Typ aufgelöst, der an den Rückruf übergeben wird.
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
)
Aktualisiert ein zuvor erstelltes Kontextmenüelement.
Parameter
-
id
String | Zahl
Die ID des zu aktualisierenden Artikels.
-
updateProperties
Objekt
Die zu aktualisierenden Properties. Akzeptiert dieselben Werte wie die Funktion
contextMenus.create
.-
ausgewählt
boolescher Wert optional
-
contexts
[ContextType, ...ContextType[]] optional
-
documentUrlPatterns
string[] optional
-
aktiviert
boolescher Wert optional
-
parentId
String | Zahl optional
Die ID des Artikels, der übergeordnetes Element dieses Artikels werden soll. Hinweis: Sie können ein Element nicht so festlegen, dass es ein untergeordnetes Element seines eigenen Nachkommens wird.
-
targetUrlPatterns
string[] optional
-
Titel
String optional
-
Typ
ItemType optional
-
sichtbar
boolescher Wert optional
Chrome 62 und höherGibt an, ob der Artikel im Menü angezeigt wird.
-
onclick
void optional
Die
onclick
-Funktion sieht so aus:(info: OnClickData, tab: Tab) => {...}
-
InfoChrome 44 und höher
-
TabulatortasteChrome 44 und höher
Die Details zum Tab, auf dem der Klick erfolgt ist. Dieser Parameter ist für Plattform-Apps nicht vorhanden.
-
-
-
callback
function optional
Der Parameter
callback
sieht so aus:() => void
Gibt Folgendes zurück:
-
Promise<void>
Chrome 123 und höherVersprechen werden in Manifest V3 und höher unterstützt, aber Callbacks sind für die Abwärtskompatibilität verfügbar. Sie können nicht beide für denselben Funktionsaufruf verwenden. Das Versprechen wird mit demselben Typ aufgelöst, der an den Rückruf übergeben wird.
Ereignisse
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
Wird ausgelöst, wenn auf ein Element im Kontextmenü geklickt wird.
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(info: OnClickData, tab?: tabs.Tab) => void
-
Info
-
Tabulatortaste
tabs.Tab optional
-