--- 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() ---
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"
.
browser.menus.overrideContext( contextOptions // object )
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"
.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.