chrome.contextMenus

refresh date: 2026-09-25 robots: noindex

Description

Utilisez l'API chrome.contextMenus pour ajouter des éléments au menu contextuel de Google Chrome. Vous pouvez choisir les types d'objets auxquels s'appliquent les ajouts au menu contextuel, comme les images, les liens hypertextes et les pages.

Autorisations

contextMenus

Utilisation

Les éléments du menu contextuel peuvent apparaître dans n'importe quel document (ou frame d'un document), même ceux dont l'URL est file:// ou chrome://. Pour contrôler les documents dans lesquels vos éléments peuvent apparaître, spécifiez le champ documentUrlPatterns lorsque vous appelez la méthode create() ou update().

Vous pouvez créer autant d'éléments de menu contextuel que nécessaire, mais si plusieurs éléments de votre extension sont visibles en même temps, Google Chrome les réduit automatiquement en un seul menu parent.

Fichier manifeste

Vous devez déclarer l'autorisation "contextMenus" dans le fichier manifeste de votre extension pour utiliser l'API. Vous devez également spécifier une icône de 16 x 16 pixels à afficher à côté de l'élément de menu. Exemple :

{
  "name": "My extension",
  ...
  "permissions": [
    "contextMenus"
  ],
  "icons": {
    "16": "icon-bitty.png",
    "48": "icon-small.png",
    "128": "icon-large.png"
  },
  ...
}

Exemples

Pour essayer cette API, installez l'exemple d'API contextMenus à partir du dépôt chrome-extension-samples.

Types

ContextType

Chrome 44 ou version ultérieure

Différents contextes dans lesquels un menu peut apparaître. Spécifier "all" équivaut à combiner tous les autres contextes, à l'exception de "launcher" et "tab". Le contexte "launcher" n'est compatible qu'avec les applications. Il permet d'ajouter des éléments au menu contextuel qui s'affiche lorsque l'utilisateur clique sur l'icône de l'application dans le lanceur d'applications, la barre des tâches, le dock, etc. Différentes plates-formes peuvent imposer des limites sur ce qui est réellement compatible avec un menu contextuel de lanceur d'applications.

Énumération

"all"

"page"

"frame"

"selection"

"link"

"editable"

"image"

"video"

"audio"

"launcher"

"action"
S'applique au menu contextuel de l'action de l'extension (l'icône de sa barre d'outils).

"tab"
S'applique au menu contextuel d'un onglet dans la bande d'onglets.

CreateProperties

Chrome 123 ou version ultérieure

Propriétés du nouvel élément de menu contextuel.

Propriétés

  • coché

    boolean facultatif

    État initial d'une case à cocher ou d'une case d'option : true pour "sélectionné", false pour "non sélectionné". Vous ne pouvez sélectionner qu'une seule case d'option à la fois dans un groupe donné.

  • contexts

    [ContextType, ...ContextType[]] facultatif

    Liste des contextes dans lesquels cet élément de menu apparaîtra. La valeur par défaut est ['page'].

  • documentUrlPatterns

    string[] facultatif

    Limite l'élément pour qu'il ne s'applique qu'aux documents ou aux cadres dont l'URL correspond à l'un des formats indiqués. Pour en savoir plus sur les formats de correspondance, consultez Formats de correspondance.

  • activé

    boolean facultatif

    Indique si cet élément du menu contextuel est activé ou désactivé. La valeur par défaut est true.

  • id

    chaîne facultatif

    Identifiant unique à attribuer à cet élément. Obligatoire pour les pages d'événement. Il ne peut pas être identique à un autre ID de cette extension.

  • parentId

    chaîne | nombre facultatif

    ID d'un élément de menu parent. Cela fait de l'élément un enfant d'un élément précédemment ajouté.

  • targetUrlPatterns

    string[] facultatif

    Comme pour documentUrlPatterns, filtre en fonction de l'attribut src des balises img, audio et video, et de l'attribut href des balises a.

  • titre

    chaîne facultatif

    Texte à afficher dans l'élément. Ce champ est obligatoire, sauf si type est défini sur separator. Lorsque le contexte est selection, utilisez %s dans la chaîne pour afficher le texte sélectionné. Par exemple, si la valeur de ce paramètre est "Traduire '%s' en louchébem" et que l'utilisateur sélectionne le mot "cool", l'élément du menu contextuel pour la sélection est "Traduire 'cool' en louchébem".

  • type

    ItemType facultatif

    Type d'élément de menu. La valeur par défaut est normal.

  • visible

    boolean facultatif

    Indique si l'élément est visible dans le menu.

  • onclick

    void facultatif

    Fonction appelée lorsque l'utilisateur clique sur l'élément de menu. Cette option n'est pas disponible dans un service worker. Vous devez plutôt enregistrer un écouteur pour contextMenus.onClicked.

    La fonction onclick se présente comme suit :

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

    • Informations sur l'élément cliqué et le contexte dans lequel le clic a eu lieu.

    • tabulation

      Détails de l'onglet où le clic a eu lieu. Ce paramètre n'est pas présent pour les applications de la plate-forme.

ItemType

Chrome 44 ou version ultérieure

Type d'élément de menu.

Énumération

"normal"

"checkbox"

"radio"

"separator"

OnClickData

Informations envoyées lorsqu'un utilisateur clique sur un élément du menu contextuel.

Propriétés

  • coché

    boolean facultatif

    Indicateur de l'état d'une case à cocher ou d'une case d'option après un clic.

  • modifiable

    booléen

    Indique si l'élément est modifiable (saisie de texte, zone de texte, etc.).

  • frameId

    number facultatif

    Chrome 51 ou version ultérieure

    ID du cadre de l'élément sur lequel l'utilisateur a cliqué dans le menu contextuel, s'il se trouvait dans un cadre.

  • frameUrl

    chaîne facultatif

    URL du cadre de l'élément sur lequel l'utilisateur a cliqué dans le menu contextuel, s'il se trouvait dans un cadre.

  • linkUrl

    chaîne facultatif

    Si l'élément est un lien, l'URL vers laquelle il pointe.

  • mediaType

    chaîne facultatif

    "image", "video" ou "audio" si le menu contextuel a été activé sur l'un de ces types d'éléments.

  • menuItemId

    string | number

    ID de l'élément de menu sur lequel l'utilisateur a cliqué.

  • pageUrl

    chaîne facultatif

    URL de la page sur laquelle l'utilisateur a cliqué sur l'élément de menu. Cette propriété n'est pas définie si le clic s'est produit dans un contexte où il n'y a pas de page actuelle, par exemple dans un menu contextuel du lanceur d'applications.

  • parentMenuItemId

    chaîne | nombre facultatif

    ID parent, le cas échéant, de l'élément ayant enregistré un clic.

  • selectionText

    chaîne facultatif

    Texte de la sélection du contexte, le cas échéant.

  • srcUrl

    chaîne facultatif

    Sera présent pour les éléments avec une URL "src".

  • wasChecked

    boolean facultatif

    Indicateur de l'état d'une case à cocher ou d'une case d'option avant qu'un utilisateur ne clique dessus.

Propriétés

ACTION_MENU_TOP_LEVEL_LIMIT

Nombre maximal d'éléments d'extension de premier niveau pouvant être ajoutés au menu contextuel d'une action d'extension. Tous les éléments au-delà de cette limite seront ignorés.

Valeur

6

Méthodes

create()

chrome.contextMenus.create(
  createProperties: CreateProperties,
  callback?: function,
)
: number | string

Crée un élément de menu contextuel. Si une erreur se produit lors de la création, elle peut ne pas être détectée avant le déclenchement du rappel de création. Les détails seront disponibles dans runtime.lastError.

Paramètres

  • createProperties
  • callback

    function facultatif

    Le paramètre callback se présente comme suit :

    () => void

Renvoie

  • number | string

    ID de l'élément récemment créé.

remove()

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

Supprime un élément du menu contextuel.

Paramètres

  • menuItemId

    string | number

    ID de l'élément de menu contextuel à supprimer.

  • callback

    function facultatif

    Le paramètre callback se présente comme suit :

    () => void

Renvoie

  • Promise<void>

    Chrome 123 ou version ultérieure

    Se résout lorsque le menu contextuel a été supprimé.

    Les promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

removeAll()

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

Supprime tous les éléments du menu contextuel ajoutés par cette extension.

Paramètres

  • callback

    function facultatif

    Le paramètre callback se présente comme suit :

    () => void

Renvoie

  • Promise<void>

    Chrome 123 ou version ultérieure

    Se résout lorsque la suppression est terminée.

    Les promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

update()

Promise
chrome.contextMenus.update(
  id: string | number,
  updateProperties: object,
  callback?: function,
)
: Promise<void>

Met à jour un élément de menu contextuel créé précédemment.

Paramètres

  • id

    string | number

    ID de l'élément à mettre à jour.

  • updateProperties

    objet

    Propriétés à mettre à jour. Accepte les mêmes valeurs que la fonction contextMenus.create.

    • coché

      boolean facultatif

    • contexts

      [ContextType, ...ContextType[]] facultatif

    • documentUrlPatterns

      string[] facultatif

    • activé

      boolean facultatif

    • parentId

      chaîne | nombre facultatif

      ID de l'élément qui doit devenir le parent de cet élément. Remarque : Vous ne pouvez pas définir un élément comme enfant de son propre descendant.

    • targetUrlPatterns

      string[] facultatif

    • titre

      chaîne facultatif

    • type

      ItemType facultatif

    • visible

      boolean facultatif

      Chrome 62 ou version ultérieure

      Indique si l'élément est visible dans le menu.

    • onclick

      void facultatif

      La fonction onclick se présente comme suit :

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

      • Chrome 44 ou version ultérieure
      • tabulation
        Chrome 44 ou version ultérieure

        Détails de l'onglet où le clic a eu lieu. Ce paramètre n'est pas présent pour les applications de la plate-forme.

  • callback

    function facultatif

    Le paramètre callback se présente comme suit :

    () => void

Renvoie

  • Promise<void>

    Chrome 123 ou version ultérieure

    Se résout lorsque le menu contextuel a été mis à jour.

    Les promesses ne sont compatibles qu'avec Manifest V3 et les versions ultérieures. Les autres plates-formes doivent utiliser des rappels.

Événements

onClicked

chrome.contextMenus.onClicked.addListener(
  callback: function,
)

Se déclenche lorsqu'un utilisateur clique sur un élément du menu contextuel.

Paramètres