From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../menus/action_menu_top_level_limit/index.html | 66 ++++++ .../webextensions/api/menus/contexttype/index.html | 103 ++++++++++ .../webextensions/api/menus/create/index.html | 228 +++++++++++++++++++++ .../api/menus/createproperties/index.html | 130 ++++++++++++ .../api/menus/gettargetelement/index.html | 74 +++++++ .../add-ons/webextensions/api/menus/index.html | 203 ++++++++++++++++++ .../webextensions/api/menus/itemtype/index.html | 81 ++++++++ .../api/menus/menus.overridecontext()/index.html | 62 ++++++ .../webextensions/api/menus/onclickdata/index.html | 105 ++++++++++ .../webextensions/api/menus/onclicked/index.html | 118 +++++++++++ .../webextensions/api/menus/onhidden/index.html | 70 +++++++ .../webextensions/api/menus/onshown/index.html | 153 ++++++++++++++ .../api/menus/overridecontext/index.html | 46 +++++ .../webextensions/api/menus/refresh/index.html | 66 ++++++ .../webextensions/api/menus/remove/index.html | 113 ++++++++++ .../webextensions/api/menus/removeall/index.html | 107 ++++++++++ .../webextensions/api/menus/update/index.html | 193 +++++++++++++++++ 17 files changed, 1918 insertions(+) create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/action_menu_top_level_limit/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/contexttype/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/create/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/createproperties/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/gettargetelement/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/itemtype/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/menus.overridecontext()/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/onclickdata/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/onclicked/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/onhidden/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/onshown/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/overridecontext/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/refresh/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/remove/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/removeall/index.html create mode 100644 files/fr/mozilla/add-ons/webextensions/api/menus/update/index.html (limited to 'files/fr/mozilla/add-ons/webextensions/api/menus') diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/action_menu_top_level_limit/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/action_menu_top_level_limit/index.html new file mode 100644 index 0000000000..4fa664e6e6 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/action_menu_top_level_limit/index.html @@ -0,0 +1,66 @@ +--- +title: menus.ACTION_MENU_TOP_LEVEL_LIMIT +slug: Mozilla/Add-ons/WebExtensions/API/menus/ACTION_MENU_TOP_LEVEL_LIMIT +tags: + - ACTION_MENU_TOP_LEVEL_LIMIT + - API + - Add-ons + - Extensions + - Non-standard + - Property + - Reference + - WebExtensions + - contextMenus +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/ACTION_MENU_TOP_LEVEL_LIMIT +--- +
{{AddonSidebar()}}
+ +

Le nombre maximal d'éléments d'extension de niveau supérieur pouvant être ajoutés à un élément de menu dont {{WebExtAPIRef("contextMenus.ContextType", "ContextType")}} est "browser_action" ou "page_action". Tout élément au-delà de cette limite sera ignoré.

+ +

Sa valeur est de 6 pour Firefox et Chrome.

+ +

Pour la compatibilité avec d'autres navigateurs, Firefox rend cette propriété disponible via l'espace de noms contextMenus ainsi que l'espace de noms des menus.

+ +

Compatibilité du navigateur

+ + + +

{{Compat("webextensions.api.menus.ACTION_MENU_TOP_LEVEL_LIMIT", 10)}}

+ +

{{WebExtExamples}}

+ +
Remerciements + +

Cette API est basée sur l'API chrome.contextMenus de chromium. Cette documentation est dérivée de context_menus.json dans le code Chromium.

+
+ + diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/contexttype/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/contexttype/index.html new file mode 100644 index 0000000000..955e0e0a40 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/contexttype/index.html @@ -0,0 +1,103 @@ +--- +title: menus.ContextType +slug: Mozilla/Add-ons/WebExtensions/API/menus/ContextType +tags: + - API + - Add-ons + - ContextType + - Extensions + - Non-standard + - Reference + - Type + - WebExtensions + - contextMenus + - menus +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/ContextType +--- +
{{AddonSidebar()}}
+ +

Les différents contextes dans lesquels un élément de menu peut apparaître.

+ +

Type

+ +

Les valeurs de ce type sont des chaînes. L'élément est affiché lorsque le contexte donné s'applique. Les valeurs possibles sont :

+ +
+
all
+
La spécification de "tous" équivaut à la combinaison de tous les autres contextes, à l'exception de 'bookmark', 'tab' et 'tools_menu'.
+
audio
+
S'applique lorsque l'utilisateur clique sur le contexte d'un élément audio.
+
bookmark
+
S'applique lorsque l'utilisateur clique en contexte sur un élément de signet dans la barre d'outils des signets, le menu des signets, la barre latérale des signets (<kbd>Ctrl</kbd> + <kbd>B</kbd>) et la fenêtre Bibliothèque (<kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>B</kbd>). Ces deux derniers sont supportés à partir de Firefox 66. Nécessite la permission d'API dans le manifest.
+
browser_action
+
S'applique lorsque l'utilisateur clique en contexte sur l'action de votre navigateur. Le nombre maximal d'éléments pouvant être ajoutés au menu contextuel de l'action du navigateur de niveau supérieur est {{WebExtAPIRef("menus.ACTION_MENU_TOP_LEVEL_LIMIT")}}, mais vous pouvez ajouter n'importe quel nombre d'éléments aux sous-menus.
+
editable
+
S'applique lorsque l'utilisateur clique en contexte sur un élément modifiable, comme un textarea.
+
frame
+
S'applique lorsque l'utilisateur clique sur le contexte dans une iframe imbriqué.
+
image
+
S'applique lorsque l'utilisateur clique sur le contexte d'une image.
+
link
+
S'applique lorsque l'utilisateur clique en contexte sur un lien.
+
page
+
S'applique lorsque l'utilisateur clique sur le contexte dans la page, mais aucun des autres contextes de page ne s'applique (par exemple, le clic ne se trouve pas sur une image ou une iframe imbriqué ou un lien).
+
page_action
+
S'applique lorsque l'utilisateur clique en contexte sur l'action de votre page. Le nombre maximal d'éléments pouvant être ajoutés au menu contextuel de l'action de page de niveau supérieur est {{WebExtAPIRef("menus.ACTION_MENU_TOP_LEVEL_LIMIT")}}, mais vous pouvez ajouter n'importe quel nombre d'éléments aux sous-menus.
+
password
+
S'applique lorsque l'utilisateur clique en contexte sur un élément d'entrée de mot de passe.
+
selection
+
S'applique lorsqu'une partie de la page est sélectionnée.
+
tab
+
S'applique lorsque l'utilisateur clique en contexte sur un onglet (en particulier, il s'agit de l'onglet ou d'un autre élément de l'interface utilisateur permettant à l'utilisateur de passer d'un onglet de navigateur à un autre, et non à la page elle-même).
+
Depuis Firefox 63, cliquer sur l'élément du menu d'un onglet accorde la permission activeTab pour l'onglet cliqué, même si ce n'est pas l'onglet actuellement actif.
+
tools_menu
+
L'élément sera ajouté au menu des outils du navigateur. Notez que ceci n'est disponible que si vous accédez à ContextType via l'espace de nom des menus. Il n'est pas disponible si vous y accédez via l'espace de noms contextMenus.
+
video
+
S'applique lorsque l'utilisateur clique sur le contexte d'un élément video.
+
+ +

Notez que "launcher" n'est pas supporté.

+ +

Compatibilité du navigateur

+ + + +

{{Compat("webextensions.api.menus.ContextType", 10)}}

+ +

{{WebExtExamples}}

+ +
Remerciements + +

Cette API est basée sur l'API chrome.contextMenus de chromium. Cette documentation est dérivée de context_menus.json dans le code Chromium.

+
+ + diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/create/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/create/index.html new file mode 100644 index 0000000000..a1931b2216 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/create/index.html @@ -0,0 +1,228 @@ +--- +title: menus.create() +slug: Mozilla/Add-ons/WebExtensions/API/menus/create +tags: + - API + - Add-ons + - Create + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - contextMenus +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/create +--- +
{{AddonSidebar()}}
+ +

Crée un nouvel élément de menu, avec un objet d'options définissant les propriétés de l'élément.

+ +

Contrairement aux autres fonctions asynchrones, celle-ci ne renvoie pas de promesse, mais utilise un callback optionnel pour communiquer le succès ou l'échec. C'est parce que sa valeur de retour est l'ID du nouvel élément.

+ +

Pour la compatibilité avec d'autres navigateurs, Firefox rend cette méthode disponible via l'espace noms contextMenus ainsi que l'espace de noms des menus. Notez cependant qu'il n'est pas possible de créer des éléments de menu d'outils (contexts: ["tools_menu"]) en utilisant l'espace de noms contextMenus.

+ +

Syntaxe

+ +
browser.menus.create(
+  createProperties, // object
+  function() {...}  // optional function
+)
+
+ +

Paramètres

+ +
+
createProperties
+
object. Propriétés pour le nouvel élément de menu.
+
+
+
checked {{optional_inline}}
+
boolean. L'état initial d'une case à cocher ou d'un élément radio : true pour selected et false pour non sélectionné. Un seul élément radio peut être sélectionné à la fois dans un groupe donné d'éléments radio.
+
command {{optional_inline}}
+
+

string. Chaîne décrivant une action à effectuer lorsque l'utilisateur clique sur l'élément. Les valeurs possibles sont:

+ +
    +
  • "_execute_browser_action": simule un clic sur l'action du navigateur de l'extension, en ouvrant son popup s'il en a un
  • +
  • "_execute_page_action": simule un clic sur l'action de la page de l'extension, en ouvrant son popup s'il en a un
  • +
  • "_execute_sidebar_action": ouvre la barre latérale de l'extension
  • +
+ +

Cliquer sur l'élément déclenchera toujours l'événement {{WebExtAPIRef("menus.onClicked")}}, mais il n'y a aucune garantie de la commande ici: la commande peut être exécutée avant les incendies onClicked.

+
+
contexts {{optional_inline}}
+
+

array de {{WebExtAPIRef('menus.ContextType')}}. Tableau des contextes dans lesquels cet élément de menu apparaîtra. Si cette option est omise :

+ +
    +
  • Si l'élément parent a des contextes définis, alors cet élément héritera des contextes de ses parents
  • +
  • sinon, l'élément reçoit un tableau de contexte de ["page"].
  • +
+
+
documentUrlPatterns {{optional_inline}}
+
array de string. Vous permet de restreindre l'élément à appliquer uniquement aux documents dont l'URL correspond à l'un des motifs données. Cela s'applique également aux cadres.
+
enabled {{optional_inline}}
+
boolean. Si cet élément de menu est activé ou désactivé. Par défaut à true.
+
icons {{optional_inline}}
+
+

object. Une ou plusieurs icônes personnalisées à afficher en regard de l'élément. Les icônes personnalisées ne peuvent être définies que pour les éléments apparaissant dans les sous-menus. Cette propriété est un objet avec une propriété pour chaque icône fournie: le nom de la propriété est la taille de l'icône en pixels et sa valeur est un chemin vers l'icône à partir du répertoire racine de l'extension. Le navigateur va essayer de choisir une icône de 16x16 pixels pour un affichage normal ou une icône de 32x32 pixels pour un affichage haute densité. Donc, pour éviter toute mise à l'échelle, vous pouvez spécifier des icônes comme ceci :

+ +
"icons": {
+      "16": "path/to/geo-16.png",
+      "32": "path/to/geo-32.png"
+    }
+ +

Vous pouvez également spécifier une seule icône SVG, qui sera mise à l'échelle de manière appropriée :

+ +
"icons": {
+      "16": "path/to/geo.svg"
+    }
+ +
+

Note: L'élément de menu de niveau supérieur utilise les icônes spécifiées dans le manifest plutôt que ce qui est spécifié avec cette touche.

+
+
+
id {{optional_inline}}
+
string. Identifiant unique à attribuer à cet élément Obligatoire pour les pages d'événement. Ne peut pas être identique à un autre ID pour cette extension.
+
onclick {{optional_inline}}
+
function. Une fonction qui sera appelée lorsque l'élément de menu est cliqué. Les pages d'événements ne peuvent pas utiliser ceci : à la place, elles devraient enregistrer un écouteur pour {{WebExtAPIRef('menus.onClicked')}}.
+
parentId {{optional_inline}}
+
integer ou string. L'ID d'un élément de menu parent; Cela fait de l'élément un enfant d'un élément ajouté précédemment. Remarque : Si vous avez créé plus d'un élément de menu, les éléments seront placés dans un sous-menu. Le parent du sous-menu sera étiqueté avec le nom de l'extension.
+
targetUrlPatterns {{optional_inline}}
+
array de string. Similaire à documentUrlPatterns, mais vous permet de filtrer en fonction du href des balises d'ancrage et de l'attribut src des balises img/audio/video tags. Ce paramètre prend en charge n'importe quel schéma d'URL, même ceux qui ne sont généralement pas autorisés dans un modèle de correspondance.
+
title {{optional_inline}}
+
+

string. Le texte à afficher dans l'article. Obligatoire sauf si le type est "separator".

+ +

Vous pouvez utiliser "%s" dans la chaîne. Si vous le faites dans un élément de menu et que du texte est sélectionné dans la page lorsque le menu est affiché, le texte sélectionné sera interpolé dans le titre. Par exemple, si le titre est "traduire '%s' en Pig Latin" et que l'utilisateur sélectionne le mot "cool", alors le menu est activé, le titre de l'élément de menu sera : "Traduire 'cool' en Pig Latin".

+ +

Si le titre contient une esperluette "&" le caractère suivant sera utilisé comme clé d'accès pour l'élément et l'esperluette ne sera pas affichée. Les exceptions à cette règle sont les suivantes :

+ +
    +
  • Si le caractère suivant est également une esperluette : alors une esperluette simple sera affichée et aucune clé d'accès ne sera définie. En effet, "&&" est utilisé pour afficher une seule esperluette.
  • +
  • Si les caractères suivants sont la directive d'interpolation "%s" :  alors l'esperluette ne sera pas affichée et aucune clé d'accès ne sera définie.
  • +
  • Si l'esperluette est le dernier caractère du titre : alors l'esperluette ne sera pas affichée et aucune clé d'accès ne sera définie.
  • +
+ +

Seule la première esperluette sera utilisée pour définir une clé d'accès : les esperluettes suivantes ne seront pas affichées mais ne définiront pas les clés. Ainsi "&A et &B" seront affichés comme "A et B" et "A" comme clé d'accès.

+
+
type {{optional_inline}}
+
{{WebExtAPIRef('menus.ItemType')}}. Le type d'élément de menu : "normal", "checkbox", "radio", "separator". Par défault à "normal".
+
viewType {{optional_inline}}
+
{{WebExtAPIRef('extension.ViewType')}}. Liste des types d'affichage où l'élément de menu sera affiché. Par défaut à n'importe quelle vue, y compris celles qui n'ont pas de viewType.
+
visible {{optional_inline}}
+
boolean. Si l'élément est affiché dans le menu. Par défaut, la valeur est true.
+
+
+
callback {{optional_inline}}
+
function. Appelé lorsque l'élément a été créé. S'il y a eu des problèmes lors de la création de l'élément, les détails seront disponibles dans {{WebExtAPIRef('runtime.lastError')}}.
+
+ +

Valeur retournée

+ +

integer ou string. L'ID de l'article nouvellement créé.

+ +

Exemples

+ +

Cet exemple crée un élément de menu contextuel qui s'affiche lorsque l'utilisateur a sélectionné du texte dans la page. Il enregistre simplement le texte sélectionné sur la console

+ +
browser.menus.create({
+  id: "log-selection",
+  title: "Log '%s' to the console",
+  contexts: ["selection"]
+});
+
+browser.menus.onClicked.addListener(function(info, tab) {
+  if (info.menuItemId == "log-selection") {
+    console.log(info.selectionText);
+  }
+});
+ +

Cet exemple ajoute deux éléments radio, que vous pouvez utiliser pour choisir d'appliquer une bordure verte ou bleue à la page. Notez que cet exemple nécessitera la permission activeTab.

+ +
function onCreated() {
+  if (browser.runtime.lastError) {
+    console.log("error creating item:" + browser.runtime.lastError);
+  } else {
+    console.log("item created successfully");
+  }
+}
+
+browser.menus.create({
+  id: "radio-green",
+  type: "radio",
+  title: "Make it green",
+  contexts: ["all"],
+  checked: false
+}, onCreated);
+
+browser.menus.create({
+  id: "radio-blue",
+  type: "radio",
+  title: "Make it blue",
+  contexts: ["all"],
+  checked: false
+}, onCreated);
+
+var makeItBlue = 'document.body.style.border = "5px solid blue"';
+var makeItGreen = 'document.body.style.border = "5px solid green"';
+
+browser.menus.onClicked.addListener(function(info, tab) {
+  if (info.menuItemId == "radio-blue") {
+    browser.tabs.executeScript(tab.id, {
+      code: makeItBlue
+    });
+  } else if (info.menuItemId == "radio-green") {
+    browser.tabs.executeScript(tab.id, {
+      code: makeItGreen
+    });
+  }
+});
+ +

{{WebExtExamples}}

+ + + +

Compatibilité du navigateur

+ + + +

{{Compat("webextensions.api.menus.create", 10)}}

+ + + +
Remerciements + +

Cette API est basée sur l'API chrome.contextMenus de chromium. Cette documentation est dérivée de context_menus.json dans le code Chromium.

+
+ + diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/createproperties/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/createproperties/index.html new file mode 100644 index 0000000000..072350b414 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/createproperties/index.html @@ -0,0 +1,130 @@ +--- +title: createProperties +slug: Mozilla/Add-ons/WebExtensions/API/menus/createProperties +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/createProperties +--- +

{{AddonSidebar()}}

+ +

Un object passé au méthodes {{WebExtAPIRef("menus.create()", "menus.create()")}} ou  {{WebExtAPIRef("menus.update()", "menus.update()")}}  pour décrire les propriétés de l'élément de menu nouveau ou mis à jour.

+ +
+
checked {{optional_inline}}
+
boolean. The initial state of a checkbox or radio item: true for selected and false for unselected. Only one radio item can be selected at a time in a given group of radio items.
+
command {{optional_inline}}
+
+

string. String describing an action that should be taken when the user clicks the item. Possible values are:

+ +
    +
  • "_execute_browser_action": simulate a click on the extension's browser action, opening its popup if it has one
  • +
  • "_execute_page_action": simulate a click on the extension's page action, opening its popup if it has one
  • +
  • "_execute_sidebar_action": open the extension's sidebar
  • +
+ +

Clicking the item will still trigger the {{WebExtAPIRef("menus.onClicked")}} event, but there's no guarantee of the ordering here: the command may be executed before onClicked fires.

+
+
contexts {{optional_inline}}
+
+

array of {{WebExtAPIRef('menus.ContextType')}}. Array of contexts in which this menu item will appear. If this option is omitted:

+ +
    +
  • if the item's parent has contexts set, then this item will inherit its parent's contexts
  • +
  • otherwise, the item is given a context array of ["page"].
  • +
+
+
documentUrlPatterns {{optional_inline}}
+
array of string. Lets you restrict the item to apply only to documents whose URL matches one of the given match patterns. This applies to frames as well.
+
enabled {{optional_inline}}
+
boolean. Whether this menu item is enabled or disabled. Defaults to true.
+
icons {{optional_inline}}
+
+

object. One or more custom icons to display next to the item. Custom icons can only be set for items appearing in submenus. This property is an object with one property for each supplied icon: the property's name should include the icon's size in pixels, and path is relative to the icon from the extension's root directory. The browser tries to choose a 16x16 pixel icon for a normal display or a 32x32 pixel icon for a high-density display. To avoid any scaling, you can specify icons like this:

+ +
"icons": {
+      "16": "path/to/geo-16.png",
+      "32": "path/to/geo-32.png"
+    }
+ +

Alternatively, you can specify a single SVG icon, and it will be scaled appropriately:

+ +
"icons": {
+      "16": "path/to/geo.svg"
+    }
+ +
+

Note: The top-level menu item uses the icons specified in the manifest rather than what is specified with this key.

+
+
+
id {{optional_inline}}
+
string. The unique ID to assign to this item. Mandatory for event pages. Cannot be the same as another ID for this extension.
+
onclick {{optional_inline}}
+
function. A function that will be called when the menu item is clicked. Event pages cannot use this: instead, they should register a listener for {{WebExtAPIRef('menus.onClicked')}}.
+
parentId {{optional_inline}}
+
integer or string. The ID of a parent menu item; this makes the item a child of a previously added item. Note: If you have created more than one menu item, then the items will be placed in a submenu. The submenu's parent will be labeled with the name of the extension.
+
targetUrlPatterns {{optional_inline}}
+
array of string. Similar to documentUrlPatterns, but lets you filter based on the href of anchor tags and the src attribute of img/audio/video tags. This parameter supports any URL scheme, even those that are usually not allowed in a match pattern.
+
title {{optional_inline}}
+
+

string. The text to be displayed in the item. Mandatory unless type is "separator".

+ +

You can use "%s" in the string. If you do this in a menu item, and some text is selected in the page when the menu is shown, then the selected text will be interpolated into the title. For example, if title is "Translate '%s' to Pig Latin" and the user selects the word "cool", then activates the menu, then the menu item's title will be: "Translate 'cool' to Pig Latin".

+ +

If the title contains an ampersand "&" then the next character will be used as an access key for the item, and the ampersand will not be displayed. Exceptions to this are:

+ +
    +
  • If the next character is also an ampersand: then a single ampersand will be displayed and no access key will be set. In effect, "&&" is used to display a single ampersand.
  • +
  • If the next characters are the interpolation directive "%s": then the ampersand will not be displayed and no access key will be set.
  • +
  • If the ampersand is the last character in the title: then the ampersand will not be displayed and no access key will be set.
  • +
+ +

Only the first ampersand will be used to set an access key: subsequent ampersands will not be displayed but will not set keys. So "&A and &B" will be shown as "A and B" and set "A" as the access key.

+
+
type {{optional_inline}}
+
{{WebExtAPIRef('menus.ItemType')}}. The type of menu item: "normal", "checkbox", "radio", "separator". Defaults to "normal".
+
viewTypes {{optional_inline}}
+
{{WebExtAPIRef('extension.ViewType')}}. List of view types where the menu item will be shown. Defaults to any view, including those without a viewType.
+
visible {{optional_inline}}
+
boolean. Whether the item is shown in the menu. Defaults to true.
+
+ +

Browser compatibility

+ + + +

{{Compat("webextensions.api.menus.createProperties", 10)}}

+ +

{{WebExtExamples}}

+ +
Acknowledgements + +

This API is based on Chromium's chrome.contextMenus API. This documentation is derived from context_menus.json in the Chromium code.

+
+ + diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/gettargetelement/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/gettargetelement/index.html new file mode 100644 index 0000000000..d45f8004cf --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/gettargetelement/index.html @@ -0,0 +1,74 @@ +--- +title: menus.getTargetElement() +slug: Mozilla/Add-ons/WebExtensions/API/menus/getTargetElement +tags: + - API + - Méthode + - Reference + - WebExtensions + - getTargetElement + - menus +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/getTargetElement +--- +
{{AddonSidebar}}
+ +

Renvoie l'élément pour un targetElementId donné

+ +

Cette méthode est disponible pour tous les contextes de script d'extension (scripts de contenu, pages de fond et autres pages d'extension) et retourne l'élément pour un  info.targetElementId donnée, à condition que l'élément existe toujours dans le document où la méthode est appelée.

+ +

La méthode ne fonctionne que dans le document qui inclut l'élément cliqué avec le bouton droit de la souris et la méthode targetElementId expire lorsque l'utilisateur ouvre un autre menu contextuel.

+ +
+

Note: menus.getTargetElement ne retourne l'élément demandé que s'il est appelé dans le même contexte que le document qui contient l'élément, par exemple en utilisant des scripts de contenu (comme dans l'exemple ci-dessous).

+
+ +


+ Une extension nécessite la permission "menus" pour utiliser cette API

+ +

Syntaxe

+ +
let elem = browser.menus.getTargetElement(targetElementId);
+
+ +

Paramètres

+ +
+
targetElementId
+
La propriété de l'objet {{WebExtAPIRef("menus.OnClickData")}} passé au gestionnaire {{WebExtAPIRef("menus.onClicked")}}ou à l'événement {{WebExtAPIRef("menus.onShown")}}.
+
+ +

Valeur retournée

+ +

L'élément auquel se réfère le paramètre targetElementId. Si le paramètre targetElementId n'est pas valide, La méthode retourne null.

+ +

Exemples

+ +

L'exemple suivant utilise la méthode getTargetElement pour obtenir l'élément auquel se réfère la propriété info.targetElementId puis le supprime.

+ +
browser.menus.create({
+  title: "Remove element",
+  documentUrlPatterns: ["*://*/*"],
+  contexts: ["audio", "editable", "frame", "image", "link", "page", "password", "video"],
+  onclick(info, tab) {
+    browser.tabs.executeScript(tab.id, {
+      frameId: info.frameId,
+      code: `browser.menus.getTargetElement(${info.targetElementId}).remove();`,
+    });
+  },
+});
+
+ +

{{WebExtExamples}}

+ +

Compatibilité du navigateur

+ + + +

{{Compat("webextensions.api.menus.getTargetElement")}}

+ +

voir aussi

+ + diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/index.html new file mode 100644 index 0000000000..ff1fd72e31 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/index.html @@ -0,0 +1,203 @@ +--- +title: menus +slug: Mozilla/Add-ons/WebExtensions/API/menus +tags: + - API + - Add-ons + - Extensions + - Interface + - Non-standard + - Reference + - WebExtensions + - contextMenus + - menus +translation_of: Mozilla/Add-ons/WebExtensions/API/menus +--- +
{{AddonSidebar}}
+ +

Ajoutez des éléments au système de menus du navigateur.

+ +

Cette API est modélisée dans l'API "contextMenus" de Chrome, qui permet aux extensions Chrome d'ajouter des éléments au menu contextuel du navigateur. L'API browser.menus ajoute quelques fonctionnalités à l'API de Chrome.

+ +

Avant Firefox 55, cette API s'appelait à l'origine contextMenus, et ce nom a été retenu comme alias. Vous pouvez donc utiliser contextMenus pour écrire du code qui fonctionne dans Firefox et dans d'autres navigateurs.

+ +

Pour utiliser cette API, vous devez avoir la permission des  menus. vous pouvez également utiliser l'alias contextMenus à la place des menus, mais si vous le faites, vous devez accéder aux API sous le nom browser.contextMenus à la place.

+ +

Excepté que menus.getTargetElement(), cette API ne peut pas être utilisée à partir de scripts de contenu.

+ +

Créer des éléments de menu

+ +

Pour créer un élément de menu, appelez la méthode {{WebExtAPIRef("menus.create()")}}. Vous transmettez à cette méthode un objet contenant des options pour l'élément, y compris l'ID d'élément, le type d'élément et les contextes dans lesquels il doit être affiché.

+ +

Écoutez les clics sur votre élément de menu en ajoutant un écouteur à l'événement {{WebExtAPIRef("menus.onClicked")}}. Cet écouteur recevra un objet  {{WebExtAPIRef("menus.OnClickData")}} contenant les détails de l'événement.

+ +

Vous pouvez créer quatre types différents d'élément de menu, en fonction de la valeur de la propriété type que vous fournissez dans les options de create():

+ + + +

Si vous avez créé plus d'un élément de menu contextuel ou plus d'un élément de menu d'outils, les éléments seront placés dans un sous-menu. Le parent du sous-menu sera étiqueté avec le nom de l'extension. Par exemple, voici une extension appelée "Menu démo" qui ajoute deux éléments de menu contextuel:

+ +

+ +

Icônes

+ +

Si vous avez spécifié des icônes pour votre extension à l'aide de la clé de manifest "icons", votre élément de menu affichera l'icône spécifiée à côté de son libellé. Le navigateur va essayer de choisir une icône de 16x16 pixels pour un affichage normal ou une icône de 32x32 pixels pour un affichage haute définition :

+ +

+ +

Uniquement pour les éléments d'un sous-menu, vous pouvez spécifier des icônes personnalisées en passant l'option icons à {{WebExtAPIRef("menus.create()")}} :

+ +

+ +

Exemple

+ +

Voici un menu contextuel contenant 4 éléments: un élément normal, deux éléments radio avec des séparateurs de chaque côté et une case à cocher. Les éléments radio sont dotés d'icônes personnalisées.

+ +

Vous pouvez créer un sous-menu comme celui-ci en utilisant du code comme :

+ +
browser.menus.create({
+  id: "remove-me",
+  title: browser.i18n.getMessage("menuItemRemoveMe"),
+  contexts: ["all"]
+}, onCreated);
+
+browser.menus.create({
+  id: "separator-1",
+  type: "separator",
+  contexts: ["all"]
+}, onCreated);
+
+browser.menus.create({
+  id: "greenify",
+  type: "radio",
+  title: browser.i18n.getMessage("menuItemGreenify"),
+  contexts: ["all"],
+  checked: true,
+  icons: {
+    "16": "icons/paint-green-16.png",
+    "32": "icons/paint-green-32.png"
+  }
+}, onCreated);
+
+browser.menus.create({
+  id: "bluify",
+  type: "radio",
+  title: browser.i18n.getMessage("menuItemBluify"),
+  contexts: ["all"],
+  checked: false,
+  icons: {
+    "16": "icons/paint-blue-16.png",
+    "32": "icons/paint-blue-32.png"
+  }
+}, onCreated);
+
+browser.menus.create({
+  id: "separator-2",
+  type: "separator",
+  contexts: ["all"]
+}, onCreated);
+
+var checkedState = true;
+
+browser.menus.create({
+  id: "check-uncheck",
+  type: "checkbox",
+  title: browser.i18n.getMessage("menuItemUncheckMe"),
+  contexts: ["all"],
+  checked: checkedState
+}, onCreated);
+ +

Types

+ +
+
{{WebExtAPIRef("menus.ContextType")}}
+
Les différents contextes dans lesquels un menu peut apparaître.
+
{{WebExtAPIRef("menus.ItemType")}}
+
Le type d'élément de menu : "normal", "checkbox", "radio", "separator".
+
{{WebExtAPIRef("menus.OnClickData")}}
+
Informations envoyées lorsqu'un élément de menu est cliqué.
+
+ +

Propriétés

+ +
+
{{WebExtAPIRef("menus.ACTION_MENU_TOP_LEVEL_LIMIT")}}
+
Le nombre maximal d'éléments d'extension de niveau supérieur pouvant être ajoutés à un élément de menu dont le type de contexte est "browser_action" ou "page_action".
+
+ +

Functions

+ +
+
{{WebExtAPIRef("menus.create()")}}
+
Crée un nouvel élément de menu.
+
{{WebExtApiRef("menus.getTargetElement()")}}
+
Retourne l'élément pour un info.targetElementId donné
+
{{WebExtApiRef("menus.overrideContext()")}}
+
Masquer tous les éléments de menu par défaut de Firefox en faveur d'une interface utilisateur de menu contextuel personnalisé.
+
{{WebExtAPIRef("menus.refresh()")}}
+
Mettre à jour un menu actuellement affiché.
+
{{WebExtAPIRef("menus.remove()")}}
+
Supprime un élément de menu.
+
{{WebExtAPIRef("menus.removeAll()")}}
+
Supprime tous les éléments de menu ajoutés par cette extension.
+
{{WebExtAPIRef("menus.update()")}}
+
Met à jour un élément de menu précédemment créé.
+
+ +

Evénements

+ +
+
{{WebExtAPIRef("menus.onClicked")}}
+
Lancé lorsqu'un élément de menu est cliqué.
+
{{WebExtAPIRef("menus.onHidden")}}
+
Lancé lorsque le navigateur cache un menu.
+
{{WebExtAPIRef("menus.onShown")}}
+
Lancé lorsque le navigateur affiche un menu.
+
+ +

Compatibilité du navigateur

+ +

{{ Compat("webextensions.api.menus", 1, "true") }}

+ +

{{WebExtExamples("h2")}}

+ +
Remerciements + +

Cette API est basée sur l'API chrome.contextMenus de chromium. Cette documentation est dérivée de context_menus.json dans le code Chromium.

+
+ + diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/itemtype/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/itemtype/index.html new file mode 100644 index 0000000000..88a6c00e24 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/itemtype/index.html @@ -0,0 +1,81 @@ +--- +title: menus.ItemType +slug: Mozilla/Add-ons/WebExtensions/API/menus/ItemType +tags: + - API + - Add-ons + - Extensions + - Non-standard + - Reference + - Type + - WebExtensions + - contextMenus + - itemtype +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/ItemType +--- +
{{AddonSidebar()}}
+ +

Le type d'élément de menu.

+ +

Type

+ +

Les valeurs de ce type sont des chaînes. Les valeurs possibles sont:

+ +
+
normal
+
Un élément de menu qui affiche simplement une étiquette.
+
checkbox
+
+

Un élément de menu qui représente un état binaire. Il affiche une coche à côté de l'étiquette. Cliquez sur l'élément pour activer la coche. L'écouteur   {{WebExtAPIRef("menus.onClicked")}} recevra deux propriétés supplémentaires : "checked", indiquant si l'élément est vérifié maintenant, et "wasChecked", indiquant si l'élément a été vérifié avant l'événement click.

+
+
radio
+
+

Un élément de menu qui représente l'un des groupes de choix. Tout comme une case à cocher, cela affiche également une coche à côté de l'étiquette, et son écouteur  {{WebExtAPIRef("menus.onClicked")}} est passé "checked" et "wasChecked". However, Cependant, si vous créez plus d'un élément radio, les éléments fonctionnent comme un groupe d'éléments radio items: un seul élément du groupe peut être vérifié, et cliquer sur un élément en fait l'élément sélectionné.

+
+
separator
+
Une ligne séparant un groupe d'éléments.
+
+ +

Compatibilité du navigateur

+ + + +

{{Compat("webextensions.api.menus.ItemType", 10)}}

+ +

{{WebExtExamples}}

+ +
Remerciements + +

Cette API est basée sur l'API chrome.contextMenus de chromium. Cette documentation est dérivée de context_menus.json dans le code Chromium.

+
+ + diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/menus.overridecontext()/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/menus.overridecontext()/index.html new file mode 100644 index 0000000000..8d8463f069 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/menus.overridecontext()/index.html @@ -0,0 +1,62 @@ +--- +title: menus.overrideContext() +slug: Mozilla/Add-ons/WebExtensions/API/menus/menus.overrideContext() +tags: + - API + - Add-ons + - Extensions + - Méthode + - WebExtensions + - contextMenus +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/menus.overrideContext() +--- +
{{AddonSidebar()}}
+ +

Cette API permet aux extensions de masquer tous les éléments de menu par défaut de Firefox afin de fournir une interface utilisateur de menu contextuel personnalisée. Ce menu contextuel peut comprendre plusieurs éléments de menu de niveau supérieur de l'extension et éventuellement inclure des éléments de menu contextuel d'onglet ou de signet provenant d'autres extensions. Cela doit être appelé lors d'un gestionnaire d'événements DOM du menu contextmenu, et s'applique uniquement au menu qui s'ouvre après cet événement.

+ +

Cette API ne peut être appelée que si l'addon dispose de la permission "menus.overrideContext".

+ +

Syntaxe

+ +
browser.menus.overrideContext(
+  contextOptions // object
+)
+
+ +

Paramètres

+ +
+
contextOptions
+
object.Propriétés qui définissent le contexte du menu contextuel.
+
+
+
bookmarkId {{optional_inline}}
+
string Requis lorsque le contexte est un signet. Nécessite la permission  "bookmark" .
+
context {{optional_inline}}
+
string. pour passer outre, pour autoriser les éléments de menu d'autres extensions dans le menu. Actuellement, seuls "bookmark" et "tab" sont supportés. showDefaults ne peut pas être utilisé avec cette option.
+
showDefaults {{optional_inline}}
+
boolean. S'il faut également inclure des éléments de menu par défaut dans le menu.
+
tabId {{optional_inline}}
+
string Requis lorsque le contexte est "tab". Nécessite la permission "tabs" .
+
+
+
+ +

Exemples

+ +

Ouvrez le menu contextuel de l'onglet de votre interface utilisateur personnalisée, dans ce cas :

+ +
document.addEventListener('contextmenu', event => {
+  const foo = event.target.closest('.foo');
+  if (foo) {
+    // When the context menu is opened on an element with the foo class
+    // set the context to "opening a tab context menu".
+    browser.menus.overrideContext({
+      context: 'tab',
+      tabId: parseInt(foo.dataset.tabId)
+    });
+  }
+}, { capture: true });
+
+ +

Voir ce billet de blog pour plus de détails.

diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/onclickdata/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/onclickdata/index.html new file mode 100644 index 0000000000..7393f73820 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/onclickdata/index.html @@ -0,0 +1,105 @@ +--- +title: menus.OnClickData +slug: Mozilla/Add-ons/WebExtensions/API/menus/OnClickData +tags: + - API + - Add-ons + - Extensions + - Non-standard + - OnClickData + - Reference + - Type + - WebExtensions + - contextMenus +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/OnClickData +--- +
{{AddonSidebar()}}
+ +

Informations transmises à l'écouteur d'événement {{WebExtAPIRef("menus.onClicked")}} lorsque vous cliquez sur un élément de menu.

+ +

Type

+ +

Les valeurs de ce type sont des objets. Ils contiennent les propriétés suivantes :

+ +
+
bookmarkId {{optional_inline}}
+
string. L'ID du signet dans lequel le menu contextuel a été cliqué.***
+
button {{optional_inline}}
+
integer. Quel bouton de la souris a été enfoncé. Les valeurs sont les mêmes que pour  MouseEvent.button.
+
checked {{optional_inline}}
+
boolean. Un flag indiquant si une case à cocher ou un élément radio a été vérifié après avoir été cliqué.
+
editable
+
boolean. Un indicateur indiquant si l'élément est modifiable: par exemple, s'il s'agit d'un textarea.
+
frameId {{optional_inline}}
+
integer. L'ID de l'image dans laquelle l'élément a été cliqué. L'ID de trame peut être utilisé dans d'autres API acceptant des ID de trame, tels que {{WebExtAPIRef("tabs.sendMessage()")}}. Si l'élément a été cliqué dans le document de niveau supérieur,par exemple, dans tools_menu ou tab context), frameId n'est pas défini.
+
frameUrl {{optional_inline}}
+
string. L'URL du cadre de l'élément sur lequel le menu contextuel a été cliqué, s'il était dans un cadre
+
linkText {{optional_inline}}
+
string. Si l'élément est un lien, le texte du lien. Si le lien ne contient aucun texte, l'URL elle-même est donnée ici.
+
linkUrl {{optional_inline}}
+
string. Si l'élément est un lien, l'URL vers laquelle il pointe.
+
mediaType {{optional_inline}}
+
string. Une de "image", "video", ou "audio" si le menu contextuel a été activé sur l'un de ces types d'éléments.
+
menuItemId
+
integer ou string. ID de l'élément de menu sur lequel vous avez cliqué.
+
modifiers
+
Array destring. Un tableau contenant toutes les touches de modification qui ont été pressées lorsque l'élément a été cliqué. Les valeurs possibles sont : "Alt", "Command", "Ctrl", "MacCtrl", et "Shift". Sur un Mac, si l'utilisateur a la touche Ctrl enfoncée, alors  "Ctrl" et "MacCtrl" sont inclus.
+
pageUrl {{optional_inline}}
+
string. L'URL de la page sur laquelle l'élément de menu a été cliqué. Cette propriété n'est pas présente si le clic s'est produit dans un contexte où il n'y a pas de page en cours, comme dans le cas d'une action du navigateur.
+
parentMenuItemId {{optional_inline}}
+
integer ou string. L'ID parent, le cas échéant, pour l'élément cliqué.
+
selectionText {{optional_inline}}
+
string. Si du texte a été sélectionné dans la page, il contient le texte sélectionné.
+
srcUrl {{optional_inline}}
+
string. Sera présent pour les éléments avec une URL "src".
+
targetElementId{{optional_inline}}
+
integer. Un identificateur de l'élément, le cas échéant, sur lequel le menu contextuel a été créé. Utilisez {{WebExtAPIRef("menus.getTargetElement()")}} dans le script de contenu pour localiser l'élément. Notez que ce n'est pas l'attribut id de l'élément page.
+
viewType {{optional_inline}}
+
{{WebExtAPIRef("extension.ViewType", "ViewType")}}. Le type de vue de l'extension.
+
wasChecked {{optional_inline}}
+
boolean. Un indicateur indiquant si une case à cocher ou un élément radio a été vérifié avant d'avoir cliqué.
+
+ +

Compatibilité du navigateur

+ + + +

{{Compat("webextensions.api.menus.OnClickData", 10)}}

+ +

{{WebExtExamples}}

+ +
Remerciements + +

Cette API est basée sur l'API chrome.contextMenus de chromium. Cette documentation est dérivée de context_menus.json dans le code Chromium.

+
+ + diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/onclicked/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/onclicked/index.html new file mode 100644 index 0000000000..cea1c7c4df --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/onclicked/index.html @@ -0,0 +1,118 @@ +--- +title: menus.onClicked +slug: Mozilla/Add-ons/WebExtensions/API/menus/onClicked +tags: + - API + - Add-ons + - Event + - Extensions + - Non-standard + - Reference + - WebExtensions + - contextMenus + - onClicked +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/onClicked +--- +
{{AddonSidebar()}}
+ +

Lancé lorsqu'un élément de menu est cliqué.

+ +

Pour la compatibilité avec les autres navigateurs, Firefox rend cet événement disponible via l'espace de noms contextMenus ainsi que l'espace de noms des menus.

+ +

Syntaxe

+ +
browser.menus.onClicked.addListener(listener)
+browser.menus.onClicked.removeListener(listener)
+browser.menus.onClicked.hasListener(listener)
+
+ +

Les événements ont trois fonctions :

+ +
+
addListener(callback)
+
Ajoute un écouteur à cet événement.
+
removeListener(listener)
+
Arrêtez d'écouter cet événement. L'argument listener est l'écouteur à supprimer.
+
hasListener(listener)
+
Vérifiez si listener est enregistré pour cet événement. Renvoie true s'il écoute, sinon false.
+
+ +

Syntaxe addListener

+ +

Paramètres

+ +
+
callback
+
+

Fonction qui sera appelée lorsque cet événement se produit. La fonction recevra les arguments suivants :

+ +
+
info
+
{{WebExtAPIRef('menus.OnClickData')}}. Informations sur l'élément cliqué et le contexte dans lequel le clic s'est produit.
+
+ +
+
tab
+
{{WebExtAPIRef('tabs.Tab')}}. Les détails de l'onglet où le clic a eu lieu. Si le clic n'a pas eu lieu dans ou sur un onglet, ce paramètre sera manquant.
+
+
+
+ +

Compatibilté du navigateur

+ + + +

{{Compat("webextensions.api.menus.onClicked", 10)}}

+ +

Exemples

+ +

Cet exemple écoute les clics sur un élément de menu, puis enregistre l'ID de l'élément et l'ID de l'onglet :

+ +
browser.menus.create({
+  id: "click-me",
+  title: "Click me!",
+  contexts: ["all"]
+});
+
+browser.menus.onClicked.addListener((info, tab) => {
+  console.log("Item " + info.menuItemId + " clicked " +
+              "in tab " + tab.id);
+});
+ +

{{WebExtExamples}}

+ +
Remerciements + +

Cette API est basée sur l'API chrome.contextMenus de chromium. Cette documentation est dérivée de context_menus.json dans le code Chromium.

+
+ + diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/onhidden/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/onhidden/index.html new file mode 100644 index 0000000000..bfa8de8fa9 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/onhidden/index.html @@ -0,0 +1,70 @@ +--- +title: menus.onHidden +slug: Mozilla/Add-ons/WebExtensions/API/menus/onHidden +tags: + - API + - Add-ons + - Event + - Extensions + - Reference + - WebExtensions + - menus + - onHidden +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/onHidden +--- +
{{AddonSidebar()}}
+ +

Lancé lorsque le navigateur cesse d'afficher un menu: par exemple, parce que l'utilisateur a cliqué à l'extérieur ou sélectionné un élément.

+ +

Elle est seulement déclenchée pour les menus qui peuvent être manipulés en utilisant l'API {{WebExtAPIRef("menus")}} elle-même: ceci inclut le menu contextuel, le menu des outils du navigateur et le menu des signets.

+ +

Ceci est plus susceptible d'être utilisé en combinaison avec {{WebExtAPIRef("menus.onShown")}} et {{WebExtAPIRef("menus.refresh()")}} API: une extension peut mettre à jour le menu quand il est affiché , puis annuler les modifications quand il est caché.

+ +

Firefox rend cet événement disponible via l'espace de noms contextMenus ainsi que l'espace de nom des menus.

+ +

Syntaxe

+ +
browser.menus.onHidden.addListener(listener)
+browser.menus.onHidden.removeListener(listener)
+browser.menus.onHidden.hasListener(listener)
+
+ +

Les événements ont trois fonctions :

+ +
+
addListener(listener)
+
Ajoute un écouteur à cet événement.
+
removeListener(listener)
+
Arrêtez d'écouter cet événement. L'argument listener  est l'écouteur à supprimer.
+
hasListener(listener)
+
Vérifiez si listener est enregistré pour cet événement. Renvoie true s'il écoute, false sinon.
+
+ +

Syntaxe addListener

+ +

Paramètres

+ +
+
callback
+
+

Fonction qui sera appelée lorsque cet événement se produit. La fonction sera transmise sans paramètre.

+
+
+ +

Compatibilité du navigateur

+ + + +

{{Compat("webextensions.api.menus.onHidden", 10)}}

+ +

Exemples

+ +

Cet exemple enregistre simplement un message chaque fois qu'un menu est masqué :

+ +
function hidden() {
+  console.log("Menu was hidden");
+}
+
+browser.menus.onHidden.addListener(hidden);
+ +

{{WebExtExamples}}

diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/onshown/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/onshown/index.html new file mode 100644 index 0000000000..5df0ebab15 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/onshown/index.html @@ -0,0 +1,153 @@ +--- +title: menus.onShown +slug: Mozilla/Add-ons/WebExtensions/API/menus/onShown +tags: + - API + - Add-ons + - Event + - Extensiosn + - Reference + - WebExtensions + - menus + - onShown +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/onShown +--- +
{{AddonSidebar()}}
+ +

Lancé lorsque le navigateur a montré un menu.

+ +

Une extension peut utiliser cet événement pour mettre à jour ses éléments de menu en utilisant des informations qui ne sont disponibles qu'une fois le menu affiché. Généralement, une extension trouvera la mise à jour dans son gestionnaire onShown puis appellera {{WebExtAPIRef("menus.refresh()")}} pour mettre à jour le menu lui-même.

+ +

Le gestionnaire peut ajouter, supprimer ou mettre à jour des éléments de menu.

+ +

Par exemple, l'extension d'exemple menu-labelled-open  ajoute un élément de menu qui s'affiche lorsque l'utilisateur clique sur un lien et qui, lorsqu'il est cliqué, ouvre simplement le lien. Il utilise onShown et refresh() pour annoter l'élément de menu avec le nom d'hôte du lien, afin que l'utilisateur puisse facilement voir où il ira avant de cliquer.

+ +

Notez qu'une extension ne devrait pas prendre trop de temps avant d'appeler refresh(), sinon la mise à jour sera visible par l'utilisateur.

+ +

Le gestionnaire reçoit des informations sur le menu et son contenu, ainsi que des informations sur la page (telles que le lien et / ou le texte de sélection). Pour accéder aux informations de la page, votre extension doit avoir la permission de l'hôte.

+ +

Si le gestionnaire onShown appelle des API asynchrones, il est possible que le menu ait été fermé à nouveau avant que le gestionnaire ne reprenne l'exécution. Pour cette raison, si un gestionnaire appelle des API asynchrones, il doit vérifier que le menu est toujours affiché avant la mise à jour du menu. Par exemple :

+ +
var lastMenuInstanceId = 0;
+var nextMenuInstanceId = 1;
+
+browser.menus.onShown.addListener(async function(info, tab) {
+  var menuInstanceId = nextMenuInstanceId++;
+  lastMenuInstanceId = menuInstanceId;
+
+  // Call an async function
+  await .... ;
+
+  // After completing the async operation, check whether the menu is still shown.
+  if (menuInstanceId !== lastMenuInstanceId) {
+    return; // Menu was closed and shown again.
+  }
+  // Now use menus.create/update + menus.refresh.
+});
+
+browser.menus.onHidden.addListener(function() {
+  lastMenuInstanceId = 0;
+});
+ +

Notez qu'il est possible d'appeler les fonctions API des menus de manière synchrone, et dans ce cas vous n'avez pas à effectuer cette vérification :

+ +
browser.menus.onShown.addListener(async function(info, tab) {
+  browser.menus.update(menuId, ...);
+   // Note: Not waiting for returned promise.
+  browser.menus.refresh();
+});
+ +

Toutefois, si vous appelez ces API de manière asynchrone, vous devez effectuer la vérification suivante :

+ +
browser.menus.onShown.addListener(async function(info, tab) {
+  var menuInstanceId = nextMenuInstanceId++;
+  lastMenuInstanceId = menuInstanceId;
+
+  await browser.menus.update(menuId, ...);
+  // must now perform the check
+  if (menuInstanceId !== lastMenuInstanceId) {
+    return;
+  }
+  browser.menus.refresh();
+});
+ +

Firefox rend cet événement disponible via l'espace de noms contextMenus ainsi que l'espace de nom des menus.

+ +

Syntaxe

+ +
browser.menus.onShown.addListener(listener)
+browser.menus.onShown.removeListener(listener)
+browser.menus.onShown.hasListener(listener)
+
+ +

Les événements ont trois fonctions :

+ +
+
addListener(listener)
+
Ajoute un écouteur à cet événement
+
removeListener(listener)
+
Arrêtez d'écouter cet événement. L'argument listener est l'écouteur à supprimer.
+
hasListener(listener)
+
Vérifiez si le listener est enregistré pour cet événement. Renvoie true s'il écoute, sinon false.
+
+ +

Syntaxe addListener

+ +

Paramètres

+ +
+
callback
+
+

Fonction qui sera appelée lorsque cet événement se produit. La fonction recevra les arguments suivants :

+ +
+
info
+
+

Object. Ceci est juste comme l'objet {{WebExtAPIRef('menus.OnClickData')}}, sauf qu'il contient deux propriétés supplémentaires:

+ +
    +
  • contexts: un tableau de tous les {{WebExtAPIRef("menus.ContextType", "contexts")}} applicables à ce menu.
  • +
  • menuIds: un tableau d'ID de tous les éléments de menu appartenant à cette extension qui sont affichés dans ce menu.
  • +
+ +

En comparaison avec menus.OnClickData, l'objet info omet également les propriétés menuItemId et modifiers, car bien sûr, celles-ci ne sont pas disponibles tant qu'un élément de menu n'a pas été sélectionné.

+ +

Les propriétés contexts, menuIds, frameId, et editable modifiables sont toujours fournis. Toutes les autres propriétés dans info sont uniquement fournies si l'extension a la permission d'hôte pour la page.

+
+
+ +
+
tab
+
{{WebExtAPIRef('tabs.Tab')}}. Les détails de l'onglet où le clic a eu lieu. Si le clic n'a pas eu lieu dans ou sur un onglet, ce paramètre sera manquant.
+
+
+
+ +

Compatibilité du navigateur

+ + + +

{{Compat("webextensions.api.menus.onShown", 10)}}

+ +

Exemples

+ +

Cet exemple permet d'afficher le menu contextuel sur un lien, puis met à jour l'élément de menu openLabelledId avec le nom d'hôte du lien :

+ +
function updateMenuItem(linkHostname) {
+  browser.menus.update(openLabelledId, {
+    title: `Open (${linkHostname})`
+  });
+  browser.menus.refresh();
+}
+
+browser.menus.onShown.addListener(info => {
+  if (!info.linkUrl) {
+    return;
+  }
+  let linkElement = document.createElement("a");
+  linkElement.href = info.linkUrl;
+  updateMenuItem(linkElement.hostname);
+});
+
+ +

{{WebExtExamples}}

diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/overridecontext/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/overridecontext/index.html new file mode 100644 index 0000000000..6869036f24 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/overridecontext/index.html @@ -0,0 +1,46 @@ +--- +title: overrideContext() +slug: Mozilla/Add-ons/WebExtensions/API/menus/overrideContext +tags: + - API + - Add-ons + - Create + - Extensions + - Method + - WebExtensions + - contextMenus +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/overrideContext +--- +

{{AddonSidebar}}

+ +

Masquer tous les éléments de menu par défaut de Firefox en faveur d'un menu contextuel personnalisé.

+ +

La méthode overrideContext permet d'afficher les éléments de menu correspondants de cette extension à la place du menu par défaut. Cette méthode doit être appelée à partir d'un gestionnaire d'événements DOM 'contextmenu', et ne s'applique qu'au menu qui s'ouvre après cet événement.

+ +

Pour appeler cette méthode, votre extension doit avoir la permission menus.overrideContext.

+ +

Syntaxe

+ +
browser.menus.overrideContext(
+  contextOptions // object
+)
+ +

Paramètres

+ +
+
contextOptions
+
object. Options sur la façon dont les menus contextuels seront remplacés.
+
+
+
showDefaults {{optional_inline}}
+
boolean. S'il faut également inclure les éléments de menu par défaut dans le menu.
+
context {{optional_inline}}
+
string. Le ContextType à surcharger, pour autoriser les éléments de menu d'autres extensions dans le menu. Actuellement, seuls 'bookmark' et 'tab' sont supportés. showDefaults ne peut pas être utilisé avec cette option.
+
bookmarkId {{optional_inline}}
+
string. Requis lorsque le contexte est  'bookmark'. Nécessite la permission  'bookmark'.
+
tabId {{optional_inline}}
+
integer. Requis lorsque le contexte est 'tab'. Nécessite la permission 'tabs'.
+
+
+
+
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/refresh/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/refresh/index.html new file mode 100644 index 0000000000..f2914a6c0f --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/refresh/index.html @@ -0,0 +1,66 @@ +--- +title: menus.refresh() +slug: Mozilla/Add-ons/WebExtensions/API/menus/refresh +tags: + - API + - Add-ons + - Extensions + - Method + - Reference + - WebExtensions + - menus + - refresh +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/refresh +--- +
{{AddonSidebar()}}
+ +

Actualise un menu affiché.

+ +

Met à jour les éléments de menu de l'extension dans le menu affiché par le navigateur, y compris les modifications effectuées depuis l'affichage du menu. N'a aucun effet si le menu n'est pas affiché. La reconstruction d'un menu affiché est une opération coûteuse. N'utilisez cette méthode que lorsque cela est nécessaire.

+ +

Cela est généralement appelé depuis l'intérieur d'un gestionnaire d'événements {{WebExtAPIRef("menus.onShown")}} après que le gestionnaire a effectué des mises à jour dans le menu.

+ +

Firefox rend cette fonction disponible via l'espace de noms contextMenus ainsi que l'espace de noms des menus.

+ +

C'est une fonction asynchrone qui renvoie une Promise.

+ +

Syntaxe

+ +
browser.menus.refresh()
+
+ +

Paramètres

+ +

Aucun.

+ +

Valeur retournée

+ +

Une Promise qui se réalise sans arguments.

+ +

Compatibilité du navigateur

+ + + +

{{Compat("webextensions.api.menus.refresh", 10)}}

+ +

Exemples

+ +

Cet exemple permet d'afficher le menu contextuel sur un lien, puis met à jour l'élément de menu openLabelledId menu item avec le nom d'hôte du lien :

+ +
function updateMenuItem(linkHostname) {
+  browser.menus.update(openLabelledId, {
+    title: `Open (${linkHostname})`
+  });
+  browser.menus.refresh();
+}
+
+browser.menus.onShown.addListener(info => {
+  if (!info.linkUrl) {
+    return;
+  }
+  let linkElement = document.createElement("a");
+  linkElement.href = info.linkUrl;
+  updateMenuItem(linkElement.hostname);
+});
+ +

{{WebExtExamples}}

diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/remove/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/remove/index.html new file mode 100644 index 0000000000..74db66b876 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/remove/index.html @@ -0,0 +1,113 @@ +--- +title: menus.remove() +slug: Mozilla/Add-ons/WebExtensions/API/menus/remove +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - contextMenus + - remove +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/remove +--- +
{{AddonSidebar()}}
+ +

Supprime un élément de menu.

+ +

Pour la compatibilité avec d'autres navigateurs, Firefox rend cette méthode disponible via l'espace de noms contextMenus ainsi que l'espace de noms des menus.

+ +

C'est une fonction asynchrone qui renvoie une Promise.

+ +

Syntaxe

+ +
var removing = browser.menus.remove(
+  menuItemId      // integer or string
+)
+
+ +

Parameters

+ +
+
menuItemId
+
integer or string. The ID of the menu item to remove.
+
+ +

Valeur retournée

+ +

Une Promise qui sera définit sans argument si la suppression a réussi, ou rejetée avec un message d'erreur si la suppression a échoué (par exemple, parce que l'élément n'a pas pu être trouvé).

+ +

Exemples

+ +

Cette extension ajoute un élément de menu intitulé "Remove me!". Si vous cliquez sur l'élément, l'extension le supprime.

+ +
function onRemoved() {
+  console.log("item removed successfully");
+}
+
+function onError() {
+  console.log("error removing item:" + browser.runtime.lastError);
+}
+
+browser.menus.create({
+  id: "remove-me",
+  title: "Remove me!",
+  contexts: ["all"]
+});
+
+browser.menus.onClicked.addListener(function(info, tab) {
+  if (info.menuItemId == "remove-me") {
+    var removing = browser.menus.remove(info.menuItemId);
+    removing.then(onRemoved, onError);
+  }
+});
+ +

{{WebExtExamples}}

+ + + +

Compatibilité du navigateur

+ + + +

{{Compat("webextensions.api.menus.remove", 10)}}

+ + + +
Remerciements + +

Cette API est basée sur l'API chrome.contextMenus de chromium. Cette documentation est dérivée de context_menus.json dans le code Chromium.

+
+ + diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/removeall/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/removeall/index.html new file mode 100644 index 0000000000..bd485607ac --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/removeall/index.html @@ -0,0 +1,107 @@ +--- +title: menus.removeAll() +slug: Mozilla/Add-ons/WebExtensions/API/menus/removeAll +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - WebExtensions + - contextMenus + - menus + - removeAll +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/removeAll +--- +
{{AddonSidebar()}}
+ +

Supprime tous les éléments de menu ajoutés par l'extension.

+ +

Pour la compatibilité avec d'autres navigateurs, Firefox rend cette méthode disponible via l'espace de noms contextMenus ainsi que l'espace de noms des menus.

+ +

C'est une fonction asynchrone qui renvoie une Promise.

+ +

Syntaxe

+ +
var removing = browser.menus.removeAll()
+
+ +

Paramètres

+ +

None.

+ +

Valeur retournée

+ +

Une Promise qui sera remplie sans argument lorsque tous les éléments ont été supprimés.

+ +

Compatibilité du navigateur

+ + + +

{{Compat("webextensions.api.menus.removeAll", 10)}}

+ +

Exemples

+ +

Cet exemple ajoute deux éléments de menu. Lorsque l'utilisateur clique sur l'élément "Supprimer tout !", L'extension supprime les deux éléments en utilisant removeAll().

+ +
function onRemoved() {
+  console.log("items removed successfully");
+}
+
+browser.menus.create({
+  id: "click-me",
+  title: "Click me!",
+  contexts: ["all"]
+});
+
+browser.menus.create({
+  id: "remove-all",
+  title: "Remove all!",
+  contexts: ["all"]
+});
+
+browser.menus.onClicked.addListener(function(info, tab) {
+  if (info.menuItemId == "remove-all") {
+    var removing = browser.menus.removeAll();
+    removing.then(onRemoved);
+  }
+});
+ +

{{WebExtExamples}}

+ +
Remerciements + +

Cette API est basée sur l'API chrome.contextMenus de chromium. Cette documentation est dérivée de context_menus.json dans le code Chromium.

+
+ + diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/update/index.html b/files/fr/mozilla/add-ons/webextensions/api/menus/update/index.html new file mode 100644 index 0000000000..f56c65c361 --- /dev/null +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/update/index.html @@ -0,0 +1,193 @@ +--- +title: menus.update() +slug: Mozilla/Add-ons/WebExtensions/API/menus/update +tags: + - API + - Add-ons + - Extensions + - Method + - Non-standard + - Reference + - Update + - WebExtensions + - contextMenus +translation_of: Mozilla/Add-ons/WebExtensions/API/menus/update +--- +
{{AddonSidebar()}}
+ +

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

+ +

Pour la compatibilité avec d'autres navigateurs, Firefox rend cette méthode disponible via l'espace de noms contextMenus ainsi que l'espace de noms des menus.

+ +

C'est une fonction asynchrone qui renvoie une Promise.

+ +

Syntaxe

+ +
var updating = browser.menus.update(
+  id,               // integer or string
+  updateProperties // object
+)
+
+ +

Paramètres

+ +
+
id
+
integer ou string. L'ID de l'article à mettre à jour.
+
updateProperties
+
object. Les propriétés à mettre à jour. Identique à l'objet createProperties passé à  {{WebExtAPIRef("menus.create()", "menus.create()")}}, sauf que l'id ne peut être défini. En outre, les icônes ne peuvent être modifiées que dans les commandes de menu, et non dans le menu contextuel de niveau supérieur. L'icône de niveau supérieur correspond à l'icône principale de l'extension telle que déclarée dans le fichier manifeste de l'extension. +
+
checked {{optional_inline}}
+
boolean. L'état initial d'une case à cocher ou d'un élément radio : true fpour sélectionné et false pour non sélectionné. Un seul élément radio peut être sélectionné à la fois dans un groupe donné d'éléments radio.
+
command {{optional_inline}}
+
+

string. Chaîne décrivant une action qui doit être effectuée lorsque l'utilisateur clique sur l'élément. Les valeurs possibles sont :

+ +
    +
  • "_execute_browser_action": simuler un clic sur l'action du navigateur de l'extension, en ouvrant son popup s'il en a un
  • +
  • "_execute_page_action": simuler un clic sur l'action de la page de l'extension, en ouvrant son popup si elle en a une
  • +
  • "_execute_sidebar_action": ouvre la barre latérale de l'extension
  • +
+ +

Cliquer sur l'élément déclenchera toujours l'événement  {{WebExtAPIRef("menus.onClicked")}}, mais rien ne garantit l'ordre ici: la commande peut être exécutée avant le lancement de onClicked.

+
+
contexts {{optional_inline}}
+
+

array de {{WebExtAPIRef('menus.ContextType')}}. Tableau des contextes dans lesquels cet élément de menu apparaîtra. Si cette option est omise :

+ +
    +
  • si le parent de l'élément a des contextes définis, alors cet élément héritera des contextes de son parent
  • +
  • sinon, l'élément reçoit un tableau de contexte de ["page"].
  • +
+
+
documentUrlPatterns {{optional_inline}}
+
array de string. Vous permet de limiter l'élément à s'appliquer uniquement aux documents dont l'URL correspond à l'un des éléments motifs de données. Ceci s'applique également aux cadres.
+
enabled {{optional_inline}}
+
boolean. Si cet élément de menu est activé ou désactivé. La valeur par défaut est true.
+
icons {{optional_inline}}
+
+

object. Une ou plusieurs icônes personnalisées à afficher à côté de l'élément. Les icônes personnalisées ne peuvent être définies que pour les éléments apparaissant dans les sous-menus. Cette propriété est un objet avec une propriété pour chaque icône fournie : le nom de la propriété doit inclure la taille de l'icône en pixels, et le chemin est relatif à l'icône du répertoire racine de l'extension. Le navigateur essaie de choisir une icône 16x16 pixels pour un affichage normal ou une icône 32x32 pixels pour un affichage haute densité. Pour éviter toute mise à l'échelle, vous pouvez spécifier des icônes comme celle-ci :

+ +
"icons": {
+      "16": "path/to/geo-16.png",
+      "32": "path/to/geo-32.png"
+    }
+ +

Alternativement, vous pouvez spécifier une seule icône SVG, et elle sera mise à l'échelle de manière appropriée :

+ +
"icons": {
+      "16": "path/to/geo.svg"
+    }
+ +
+

Note: The top-level menu item uses the icons specified in the manifest rather than what is specified with this key.

+
+
+
id {{optional_inline}}
+
string. L'ID unique à affecter à cet article. Obligatoire pour les pages d'événements. Ne peut pas être le même qu'un autre ID pour cette extension.
+
onclick {{optional_inline}}
+
function. Une fonction qui sera appelée lorsque vous cliquerez sur l'élément de menu. Les pages d'événements ne peuvent pas l'utiliser : elles doivent plutôt enregistrer un auditeur pour {{WebExtAPIRef('menus.onClicked')}}.
+
parentId {{optional_inline}}
+
integer ou string. L'ID d'un élément de menu parent ; ceci fait de l'élément un enfant d'un élément précédemment ajouté. Remarque : Si vous avez créé plus d'un élément de menu, les éléments seront placés dans un sous-menu. Le parent du sous-menu sera étiqueté avec le nom de l'extension.
+
targetUrlPatterns {{optional_inline}}
+
array de string. Similairer à documentUrlPatterns, mais vous permet de filtrer en fonction de la href des balises d'ancre et l'attribut src des balises  img/audio/video. Ce paramètre prend en charge n'importe quel schéma d'URL, même ceux qui ne sont généralement pas autorisés dans un modèle de correspondance.
+
title {{optional_inline}}
+
+

string. Le texte à afficher dans le poste. Obligatoire sauf si le type est "separateur".

+ +

Vous pouvez utiliser "%s" dans la chaîne de caractères. Si vous le faites dans un élément de menu, et qu'un texte est sélectionné dans la page lorsque le menu est affiché, le texte sélectionné sera interpolé dans le titre. Par exemple, si title est "Traduction '%s' à Pig Latin" et que l'utilisateur sélectionne le mot "cool", puis active le menu, alors le titre de l'élément de menu sera : "Traduction 'cool' à Pig Latin".

+ +

Si le titre contient une esperluette "&", le caractère suivant sera utilisé comme clé d'accès pour l'élément et l'esperluette ne sera pas affichée. Les exceptions à cette règle sont les suivantes :

+ +
    +
  • Si le caractère suivant est également une esperluette : alors une esperluette simple sera affichée et aucune clé d'accès ne sera définie. En effet, "&&" est utilisé pour afficher une seule esperluette.
  • +
  • Si les caractères suivants sont la directive d'interpolation "%s" : alors l'esperluette ne sera pas affichée et aucune clé d'accès ne sera définie.
  • +
  • Si l'esperluette est le dernier caractère du titre : alors l'esperluette ne sera pas affichée et aucune clé d'accès ne sera définie.
  • +
+ +

Seule la première esperluette sera utilisée pour définir une clé d'accès : les esperluettes suivantes ne seront pas affichées mais ne définiront pas les clés. Ainsi, "&A et &B" seront affichés comme "A et B" et "A" comme clé d'accès

+
+
type {{optional_inline}}
+
{{WebExtAPIRef('menus.ItemType')}}. Le type d'élément de menu : "normal", "checkbox", "radio", "separator". Defaults to "normal".
+
viewTypes {{optional_inline}}
+
{{WebExtAPIRef('extension.ViewType')}}. Liste des types d'affichage où l'élément de menu sera affiché. Par défaut à n'importe quelle vue, y compris celles qui n'ont pas de viewType.
+
visible {{optional_inline}}
+
boolean. Si l'élément est affiché dans le menu. La valeur par défaut est true.
+
+
+
+ +

Valeur retournée

+ +

Une Promise qui sera satisfaite sans argument si la mise à jour a réussi, ou rejetée avec un message d'erreur si la mise à jour a échoué.

+ +

Exemples

+ +

Cet exemple crée un élément de menu, puis met à jour son titre lorsque l'utilisateur clique dessus :

+ +
function onUpdated() {
+  console.log("item updated successfully");
+}
+
+function onError() {
+  console.log("error updating item:" + browser.runtime.lastError);
+}
+
+browser.menus.create({
+  id: "do-not-click-me",
+  title: "Do not click this button",
+  contexts: ["all"]
+});
+
+browser.menus.onClicked.addListener(function(info, tab) {
+  if (info.menuItemId == "do-not-click-me") {
+    var updating = browser.contextMenus.update(info.menuItemId, {
+      title: "Do not click this button again"
+    });
+    updating.then(onUpdated, onError);
+  }
+});
+ +

{{WebExtExamples}}

+ +

Compatibilité du navigateur

+ + + +

{{Compat("webextensions.api.menus.update", 10)}}

+ +
Remerciements + +

Cette API est basée sur l'API chrome.contextMenus de chromium. Cette documentation est dérivée de context_menus.json dans le code Chromium.

+
+ + -- cgit v1.2.3-54-g00ecf