Beschreibung
Verwenden Sie die chrome.contextMenus
API, um Elemente zum Kontextmenü von Google Chrome hinzuzufügen. Sie können auswählen, für welche Objekttypen die Elemente im Kontextmenü gelten, z. B. Bilder, Hyperlinks und Seiten.
Berechtigungen
contextMenus
Nutzung
Kontextmenüelemente können in jedem Dokument (oder Frame innerhalb eines Dokuments) angezeigt werden, auch in den URLs von file:// oder chrome://. Wenn Sie festlegen möchten, in welchen Dokumenten Ihre Elemente angezeigt werden, geben Sie das Feld „documentUrlPatterns“ an, wenn Sie die Methode create()
oder update()
aufrufen.
Sie können beliebig viele Kontextmenüelemente erstellen. Wenn jedoch mehrere Elemente Ihrer Erweiterung gleichzeitig sichtbar sind, werden sie von Google Chrome automatisch zu einem übergeordneten Menü minimiert.
Manifest
Du musst die Berechtigung „contextMenus“ im Manifest deiner Erweiterung deklarieren, um die API verwenden zu können. Außerdem sollten Sie neben Ihrem Menüpunkt ein Symbol mit 16 x 16 Pixel zur Anzeige 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 testen möchten, installieren Sie das contextMenus API-Beispiel aus dem Repository chrome-extension-sample.
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 wird verwendet, um Menüelemente zum Kontextmenü hinzuzufügen, das angezeigt wird, wenn in der Launcher-Taste, der Taskleiste, der Dockingstation usw. auf das App-Symbol geklickt wird. Je nach Plattform kann es sein, dass die Unterstützung in einem Launcher-Kontextmenü eingeschränkt wird.
Enum
"browser_action"
"page_action"
CreateProperties
Eigenschaften des neuen Kontextmenüelements.
Attribute
-
ausgewählt
Boolescher Wert optional
Der Anfangszustand eines Kästchens oder Optionsfelds:
true
für „ausgewählt“, „false
“ für „nicht ausgewählt“. Pro 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 auf Dokumente oder Frames, deren URL mit einem der angegebenen Muster übereinstimmt. Weitere Informationen zu Musterformaten finden Sie unter Übereinstimmungsmuster.
-
aktiviert
Boolescher Wert optional
Gibt an, ob dieser Kontextmenüpunkt 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 für diese Erweiterung nicht mit einer anderen ID identisch sein.
-
parentId
String | Zahl optional
Die ID eines übergeordneten Menüpunkts. Dadurch wird der Artikel einem zuvor hinzugefügten Element untergeordnet.
-
targetUrlPatterns
string[] optional
Ähnlich wie bei
documentUrlPatterns
werden Filter basierend auf dem Attributsrc
der Tagsimg
,audio
undvideo
sowie des Attributshref
vona
-Tags gefiltert. -
Titel
String optional
Der im Artikel anzuzeigende Text. Dies ist erforderlich, es sei denn,
type
istseparator
. Wenn der Kontextselection
ist, verwenden Sie%s
im String, 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üeintrag für die Auswahl „Übersetzen von ‚cool‘ in Pig Latin“. -
Typ
ItemType optional
Die Art des Menüpunkts. Die Standardeinstellung ist
normal
. -
sichtbar
Boolescher Wert 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 ist in einem Service Worker nicht verfügbar. Stattdessen sollten Sie einen Listener für
contextMenus.onClicked
registrieren.Die Funktion
onclick
sieht so aus:(info: OnClickData, tab: Tab) => {...}
-
Info
Informationen zum angeklickten Artikel und Kontext, in dem der Klick erfolgte
-
Die Details des Tabs, auf dem der Klick erfolgte. Dieser Parameter ist für Plattform-Apps nicht vorhanden.
-
ItemType
Die Art des Menüpunkts.
Enum
"normal"
"radio"
OnClickData
Informationen, die gesendet werden, wenn auf ein Kontextmenü geklickt wird.
Attribute
-
ausgewählt
Boolescher Wert optional
Eine Markierung, die 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
Nummer optional
Chrome 51 und höherID des Frames des Elements, in dem auf das Kontextmenü geklickt wurde, wenn es sich in einem Frame befand.
-
frameUrl
String optional
URL des Frames des Elements, in dem auf das Kontextmenü geklickt wurde, wenn es sich in einem Frame befand.
-
linkUrl
String optional
Wenn es sich bei dem Element um einen Link handelt, ist dies die URL, auf die es verweist.
-
mediaType
String optional
Entweder 'image', 'video' oder 'audio', wenn das Kontextmenü für einen dieser Elementtypen aktiviert wurde.
-
String | Zahl
Die ID des Artikels auf der Speisekarte, auf den geklickt wurde.
-
pageUrl
String optional
Die URL der Seite, auf der auf das Menü geklickt wurde. Diese Eigenschaft wird nicht festgelegt, wenn der Klick in einem Kontext erfolgte, in dem keine aktuelle Seite vorhanden ist, z. B. in einem Launcher-Kontextmenü.
-
parentMenuItemId
String | Zahl optional
Die übergeordnete ID des angeklickten Artikels, falls 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
Eine Markierung, die den Status eines Kästchens oder Optionsfelds vor dem Anklicken angibt.
Attribute
ACTION_MENU_TOP_LEVEL_LIMIT
Die maximale Anzahl von Erweiterungselementen auf oberster Ebene, die einem Kontextmenü für die Erweiterungsaktionen hinzugefügt werden können. Alle darüber hinausgehenden Elemente 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 erkannt, wenn der Erstellungs-Callback ausgelöst wird. Details finden Sie in runtime.lastError
.
Parameter
-
createProperties
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Rückgabe
-
Zahl | String
Die ID des neu erstellten Elements
remove()
chrome.contextMenus.remove(
menuItemId: string | number,
callback?: function,
)
Entfernt einen Kontextmenüeintrag.
Parameter
-
String | Zahl
Die ID des zu entfernenden Kontextmenüelements.
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Rückgabe
-
Promise<void>
Chrome 123 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
removeAll()
chrome.contextMenus.removeAll(
callback?: function,
)
Entfernt alle von dieser Erweiterung hinzugefügten Kontextmenüelemente.
Parameter
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Rückgabe
-
Promise<void>
Chrome 123 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
update()
chrome.contextMenus.update(
id: string | number,
updateProperties: object,
callback?: function,
)
Aktualisiert ein zuvor erstelltes Kontextmenü.
Parameter
-
id
String | Zahl
Die ID des Artikels, der aktualisiert werden soll.
-
updateProperties
Objekt
Die zu aktualisierenden Attribute. Akzeptiert die gleichen 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 Elements, das zum übergeordneten Element dieses Elements gemacht werden soll Hinweis: Sie können ein Element nicht als untergeordnetes Element eines eigenen Nachfolgerelements festlegen.
-
targetUrlPatterns
string[] optional
-
Titel
String optional
-
Typ
ItemType optional
-
sichtbar
Boolescher Wert optional
Chrome 62 und höherGibt an, ob das Element im Menü sichtbar ist
-
onclick
void optional
Die Funktion
onclick
sieht so aus:(info: OnClickData, tab: Tab) => {...}
-
InfoChrome 44 und höher
-
Chrome 44 und höher
Die Details des Tabs, auf dem der Klick erfolgte. Dieser Parameter ist für Plattform-Apps nicht vorhanden.
-
-
-
callback
Funktion optional
Der Parameter
callback
sieht so aus:() => void
Rückgabe
-
Promise<void>
Chrome 123 oder höherPromise-Objekte werden nur für Manifest V3 und höher unterstützt. Andere Plattformen müssen Callbacks verwenden.
Veranstaltungen
onClicked
chrome.contextMenus.onClicked.addListener(
callback: function,
)
Wird ausgelöst, wenn auf ein Kontextmenü geklickt wird
Parameter
-
callback
Funktion
Der Parameter
callback
sieht so aus:(info: OnClickData, tab?: tabs.Tab) => void
-
Info
-
tabs.Tab optional
-