chrome.contextMenus

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

contextMenus

Nutzung

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

Chrome 44 oder höher

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

Chrome 123 und höher

Eigenschaften des neuen Kontextmenüeintrags.

Attribute

  • ausgewählt

    Boolesch optional

    Der Anfangszustand 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

    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 Attribut src der Tags img, audio und video sowie dem Attribut href der Tags a.

  • Titel

    String optional

    Der Text, der im Element angezeigt werden soll. Dies ist erforderlich, außer type ist separator. Wenn der Kontext selection ist, verwenden Sie %s innerhalb 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 onclick sieht so aus:

    (info: OnClickData, tab: Tab) => {...}

    • 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

Chrome 44 oder höher

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öher

    Die 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.

  • menuItemId

    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 callback sieht so aus:

    () => void

Ausgabe

  • number | string

    Die ID des neu erstellten Elements.

remove()

Promise
chrome.contextMenus.remove(
  menuItemId: string | number,
  callback?: function,
)
: Promise<void>

Entfernt ein Kontextmenüelement.

Parameter

  • menuItemId

    string | number

    Die ID des zu entfernenden Kontextmenüelements.

  • callback

    function optional

    Der Parameter callback sieht so aus:

    () => void

Ausgabe

  • Promise<void>

    Chrome 123 und höher

    Wird 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()

Promise
chrome.contextMenus.removeAll(
  callback?: function,
)
: Promise<void>

Entfernt alle Kontextmenüelemente, die von dieser Erweiterung hinzugefügt wurden.

Parameter

  • callback

    function optional

    Der Parameter callback sieht so aus:

    () => void

Ausgabe

  • Promise<void>

    Chrome 123 und höher

    Wird 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()

Promise
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öher

      Gibt an, ob das Element im Menü sichtbar ist.

    • onclick

      void optional

      Die Funktion onclick sieht so aus:

      (info: OnClickData, tab: Tab) => {...}

      • Chrome 44 oder höher
      • Tabulatortaste
        Chrome 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 callback sieht so aus:

    () => void

Ausgabe

  • Promise<void>

    Chrome 123 und höher

    Wird 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