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
contextMenusNutzung
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ähltboolean optional Der Anfangsstatus eines Kästchens oder Optionsfelds: truefür ausgewählt,falsefü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'].
- 
    documentUrlPatternsstring[] 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. 
- 
    aktiviertboolean optional Gibt an, ob dieses Kontextmenüelement aktiviert oder deaktiviert ist. Die Standardeinstellung ist true.
- 
    idString 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. 
- 
    parentIdString | Zahl optional Die ID eines übergeordneten Menüpunkts. Dadurch wird das Element zu einem untergeordneten Element eines zuvor hinzugefügten Elements. 
- 
    targetUrlPatternsstring[] optional Ähnlich wie bei documentUrlPatternswerden Filter basierend auf demsrc-Attribut der Tagsimg,audioundvideosowie demhref-Attribut dera-Tags angewendet.
- 
    TitelString optional Der im Element anzuzeigende Text. Dieser ist erforderlich, sofern typenichtseparatorist. Wenn der Kontextselectionist, verwenden Sie%sim 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“.
- 
    TypItemType optional Der Typ des Menüpunkts. Die Standardeinstellung ist normal.
- 
    sichtbarboolean optional Gibt an, ob das Element im Menü sichtbar ist. 
- 
    onclickvoid 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.onClickedregistrieren.Die onclick-Funktion sieht so aus:(info: OnClickData, tab: Tab) => {...} - 
    InfoInformationen zum angeklickten Element und zum Kontext, in dem der Klick erfolgt ist. 
- 
    TabulatortasteDetails 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ähltboolean optional Ein Flag, das den Status eines Kontrollkästchens oder Optionsfelds nach dem Klicken angibt. 
- 
    bearbeitbarboolean Ein Flag, das angibt, ob das Element bearbeitet werden kann (Texteingabe, Textbereich usw.). 
- 
    frameIdnumber 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. 
- 
    frameUrlString optional Die URL des Frames des Elements, auf das geklickt wurde, um das Kontextmenü aufzurufen, sofern es sich in einem Frame befand. 
- 
    linkUrlString optional Wenn das Element ein Link ist, die URL, auf die es verweist. 
- 
    mediaTypeString 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. 
- 
    pageUrlString 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. 
- 
    parentMenuItemIdString | Zahl optional Die übergeordnete ID des angeklickten Elements, sofern vorhanden. 
- 
    selectionTextString optional Der Text für die Kontextauswahl, falls vorhanden. 
- 
    srcUrlString optional Wird für Elemente mit einer „src“-URL angezeigt. 
- 
    wasCheckedboolean 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
- 
    callbackFunktion 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 | Zahl Die ID des zu entfernenden Kontextmenüelements. 
- 
    callbackFunktion optional Der Parameter callbacksieht 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
- 
    callbackFunktion optional Der Parameter callbacksieht 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
- 
    idString | Zahl Die ID des zu aktualisierenden Artikels. 
- 
    updatePropertiesObjekt Die zu aktualisierenden Attribute. Akzeptiert dieselben Werte wie die Funktion contextMenus.create.- 
    ausgewähltboolean optional 
- 
    contexts[ContextType, ...ContextType[]] optional 
- 
    documentUrlPatternsstring[] optional 
- 
    aktiviertboolean optional 
- 
    parentIdString | 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. 
- 
    targetUrlPatternsstring[] optional 
- 
    TitelString optional 
- 
    TypItemType optional 
- 
    sichtbarboolean optional Chrome 62 und höherGibt an, ob das Element im Menü sichtbar ist. 
- 
    onclickvoid optional Die onclick-Funktion sieht so aus:(info: OnClickData, tab: Tab) => {...} - 
    InfoChrome 44 und höher
- 
    TabulatortasteChrome 44 und höherDetails zum Tab, auf den geklickt wurde. Dieser Parameter ist für Plattform-Apps nicht vorhanden. 
 
- 
    
 
- 
    
- 
    callbackFunktion optional Der Parameter callbacksieht 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
- 
    callbackFunktion Der Parameter callbacksieht so aus:(info: OnClickData, tab?: tabs.Tab) => void - 
    Info
- 
    Tabulatortastetabs.Tab optional 
 
-