chrome.contextMenus

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

Chrome 44 und 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“. 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

Chrome 123 und höher

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

  • Titel

    String optional

    Der im Element anzuzeigende Text. Dieser ist erforderlich, sofern type nicht separator ist. Wenn der Kontext selection 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) => {...}

    • 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

Chrome 44 und 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

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

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

  • menuItemId

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

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

Entfernt ein Kontextmenüelement.

Parameter

  • menuItemId

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

    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

    Funktion optional

    Der Parameter callback sieht so aus:

    () => void

Ausgabe

  • Promise<void>

    Chrome 123 und höher

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

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

    • onclick

      void optional

      Die onclick-Funktion sieht so aus:

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

      • Chrome 44 und höher
      • Tabulatortaste
        Chrome 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öher

    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 ein Kontextmenüelement geklickt wird.

Parameter