diff options
Diffstat (limited to 'files/fr/mozilla/add-ons/webextensions/api/menus/index.md')
-rw-r--r-- | files/fr/mozilla/add-ons/webextensions/api/menus/index.md | 173 |
1 files changed, 81 insertions, 92 deletions
diff --git a/files/fr/mozilla/add-ons/webextensions/api/menus/index.md b/files/fr/mozilla/add-ons/webextensions/api/menus/index.md index d6bfc9eebc..379ac32a31 100644 --- a/files/fr/mozilla/add-ons/webextensions/api/menus/index.md +++ b/files/fr/mozilla/add-ons/webextensions/api/menus/index.md @@ -13,54 +13,53 @@ tags: - menus translation_of: Mozilla/Add-ons/WebExtensions/API/menus --- -<div>{{AddonSidebar}}</div> +{{AddonSidebar}} -<p>Ajoutez des éléments au système de menus du navigateur.</p> +Ajoutez des éléments au système de menus du navigateur. -<p>Cette API est modélisée dans l'API <a href="https://developer.chrome.com/extensions/contextMenus">"contextMenus"</a> de Chrome, qui permet aux extensions Chrome d'ajouter des éléments au menu contextuel du navigateur. L'API <code>browser.menus</code> ajoute quelques fonctionnalités à l'API de Chrome.</p> +Cette API est modélisée dans l'API ["contextMenus"](https://developer.chrome.com/extensions/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. -<p>Avant Firefox 55, cette API s'appelait à l'origine <code>contextMenus</code>, et ce nom a été retenu comme alias. Vous pouvez donc utiliser <code>contextMenus</code> pour écrire du code qui fonctionne dans Firefox et dans d'autres navigateurs.</p> +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. -<p>Pour utiliser cette API, vous devez avoir la <a href="/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions">permission</a> des <code>menus.</code> vous pouvez également utiliser l'alias <code>contextMenus</code> à la place des <code>menus</code>, mais si vous le faites, vous devez accéder aux API sous le nom <code>browser.contextMenus</code> à la place.</p> +Pour utiliser cette API, vous devez avoir la [permission](/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) 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. -<p>Excepté que <code><a href="/fr/docs/Mozilla/Add-ons/WebExtensions/API/menus/getTargetElement">menus.getTargetElement()</a></code>, cette API ne peut pas être utilisée à partir de scripts de contenu.</p> +Excepté que [`menus.getTargetElement()`](/fr/docs/Mozilla/Add-ons/WebExtensions/API/menus/getTargetElement), cette API ne peut pas être utilisée à partir de scripts de contenu. -<h2 id="Créer_des_éléments_de_menu">Créer des éléments de menu</h2> +## Créer des éléments de menu -<p>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é.</p> +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é. -<p>É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.</p> +É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. -<p>Vous pouvez créer quatre types différents d'élément de menu, en fonction de la valeur de la propriété <code>type</code> que vous fournissez dans les options de <code>create()</code>:</p> +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()`: -<ul> - <li>"normal": un élément de menu qui affiche simplement une étiquette</li> - <li>"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 case. L'écouteur de clic 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.</li> - <li>"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 de clic est passé "checked" et "wasChecked". Cependant, si vous créez plus d'un élément radio, les éléments fonctionnent comme un groupe d'éléments radio: un seul élément du groupe peut être vérifié, et cliquer sur un élément en fait l'élément sélectionné.</li> - <li>"separateur": une ligne séparant un groupe d'éléments.</li> -</ul> +- "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 case. L'écouteur de clic 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 de clic est passé "checked" et "wasChecked". Cependant, si vous créez plus d'un élément radio, les éléments fonctionnent comme un groupe d'éléments radio: un seul élément du groupe peut être vérifié, et cliquer sur un élément en fait l'élément sélectionné. +- "separateur": une ligne séparant un groupe d'éléments. -<p>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:</p> +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: -<p><img alt="" src="menus-1.png"></p> +![](menus-1.png) -<h2 id="Icônes">Icônes</h2> +## Icônes -<p>Si vous avez spécifié des icônes pour votre extension à l'aide de la <a href="/fr/Add-ons/WebExtensions/manifest.json/icons">clé de manifest "icons"</a>, 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 :</p> +Si vous avez spécifié des icônes pour votre extension à l'aide de la [clé de manifest "icons"](/fr/Add-ons/WebExtensions/manifest.json/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 : -<p><img alt="" src="menus-2.png"></p> +![](menus-2.png) -<p>Uniquement pour les éléments d'un sous-menu, vous pouvez spécifier des icônes personnalisées en passant l'option <code>icons</code> à {{WebExtAPIRef("menus.create()")}} :</p> +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()")}} : -<p><img alt="" src="menus-3.png"></p> +![](menus-3.png) -<h2 id="Exemple">Exemple</h2> +## Exemple -<p>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.</p> +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. -<p><img alt="" src="menus-4.png">Vous pouvez créer un sous-menu comme celui-ci en utilisant du code comme :</p> +![](menus-4.png)Vous pouvez créer un sous-menu comme celui-ci en utilisant du code comme : -<pre class="brush: js">browser.menus.create({ +```js +browser.menus.create({ id: "remove-me", title: browser.i18n.getMessage("menuItemRemoveMe"), contexts: ["all"] @@ -110,69 +109,60 @@ browser.menus.create({ title: browser.i18n.getMessage("menuItemUncheckMe"), contexts: ["all"], checked: checkedState -}, onCreated);</pre> - -<h2 id="Types">Types</h2> - -<dl> - <dt>{{WebExtAPIRef("menus.ContextType")}}</dt> - <dd>Les différents contextes dans lesquels un menu peut apparaître.</dd> - <dt>{{WebExtAPIRef("menus.ItemType")}}</dt> - <dd>Le type d'élément de menu : "normal", "checkbox", "radio", "separator".</dd> - <dt>{{WebExtAPIRef("menus.OnClickData")}}</dt> - <dd>Informations envoyées lorsqu'un élément de menu est cliqué.</dd> -</dl> - -<h2 id="Propriétés">Propriétés</h2> - -<dl> - <dt>{{WebExtAPIRef("menus.ACTION_MENU_TOP_LEVEL_LIMIT")}}</dt> - <dd>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".</dd> -</dl> - -<h2 id="Functions">Functions</h2> - -<dl> - <dt>{{WebExtAPIRef("menus.create()")}}</dt> - <dd>Crée un nouvel élément de menu.</dd> - <dt>{{WebExtApiRef("menus.getTargetElement()")}}</dt> - <dd>Retourne l'élément pour un <code>info.targetElementId</code> donné</dd> - <dt>{{WebExtApiRef("menus.overrideContext()")}}</dt> - <dd>Masquer tous les éléments de menu par défaut de Firefox en faveur d'une interface utilisateur de menu contextuel personnalisé.</dd> - <dt>{{WebExtAPIRef("menus.refresh()")}}</dt> - <dd>Mettre à jour un menu actuellement affiché.</dd> - <dt>{{WebExtAPIRef("menus.remove()")}}</dt> - <dd>Supprime un élément de menu.</dd> - <dt>{{WebExtAPIRef("menus.removeAll()")}}</dt> - <dd>Supprime tous les éléments de menu ajoutés par cette extension.</dd> - <dt>{{WebExtAPIRef("menus.update()")}}</dt> - <dd>Met à jour un élément de menu précédemment créé.</dd> -</dl> - -<h2 id="Evénements">Evénements</h2> - -<dl> - <dt>{{WebExtAPIRef("menus.onClicked")}}</dt> - <dd>Lancé lorsqu'un élément de menu est cliqué.</dd> - <dt>{{WebExtAPIRef("menus.onHidden")}}</dt> - <dd>Lancé lorsque le navigateur cache un menu.</dd> - <dt>{{WebExtAPIRef("menus.onShown")}}</dt> - <dd>Lancé lorsque le navigateur affiche un menu.</dd> -</dl> - -<h2 id="Compatibilité_du_navigateur">Compatibilité du navigateur</h2> - -<p>{{ Compat("webextensions.api.menus", 1, "true") }}</p> - -<p>{{WebExtExamples("h2")}}</p> - -<div class="note"><p><strong>Note :</strong></p> - -<p>Cette API est basée sur l'API <a href="https://developer.chrome.com/extensions/contextMenus"><code>chrome.contextMenus</code></a> de chromium. Cette documentation est dérivée de <a href="https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json"><code>context_menus.json</code></a> dans le code Chromium.</p> -</div> - -<div class="hidden"> -<pre>// Copyright 2015 The Chromium Authors. All rights reserved. +}, 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")}} + +> **Note :** +> +> Cette API est basée sur l'API [`chrome.contextMenus`](https://developer.chrome.com/extensions/contextMenus) de chromium. Cette documentation est dérivée de [`context_menus.json`](https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/context_menus.json) dans le code Chromium. + +<div class="hidden"><pre>// Copyright 2015 The Chromium Authors. All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are @@ -199,5 +189,4 @@ browser.menus.create({ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -</pre> -</div> +</pre></div> |