menus.update()
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
oustring
. L'ID de l'article à mettre à jour. updateProperties
-
object
. Les propriétés à mettre à jour. Identique à l'objetcreateProperties
passé àmenus.create()
, sauf que l'id
ne peut être défini. En outre, lesicô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
Facultatif-
boolean
. L'état initial d'une case à cocher ou d'un élément radio :true
fpour sélectionné etfalse
pour non sélectionné. Un seul élément radio peut être sélectionné à la fois dans un groupe donné d'éléments radio. command
Facultatif-
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
menus.onClicked
, mais rien ne garantit l'ordre ici: la commande peut être exécutée avant le lancement deonClicked
. contexts
Facultatif-
array
de
. Tableau des contextes dans lesquels cet élément de menu apparaîtra. Si cette option est omise :menus.ContextType
- 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
Facultatif-
array
destring
. 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
Facultatif-
boolean
. Si cet élément de menu est activé ou désactivé. La valeur par défaut esttrue
. icons
Facultatif-
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 :json"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 :
json"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
Facultatif-
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
Facultatif-
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 pourmenus.onClicked
. parentId
Facultatif-
integer
oustring
. 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
Facultatif-
array
destring
. Similairer àdocumentUrlPatterns
, mais vous permet de filtrer en fonction de lahref
des balises d'ancre et l'attributsrc
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
Facultatif-
string
. Le texte à afficher dans le poste. Obligatoire sauf si letype
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, sititle
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
Facultatif-
. Le type d'élément de menu : "normal", "checkbox", "radio", "separator". Defaults to "normal".menus.ItemType
viewTypes
Facultatif-
. 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 deextension.ViewType
viewType
. visible
Facultatif-
boolean
. Si l'élément est affiché dans le menu. La valeur par défaut esttrue
.
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);
}
});
Example extensions
Compatibilité des navigateurs
BCD tables only load in the browser
Note :
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.