Mon extension doit utiliser les options de l'utilisateur pour créer des sous-menus dans l'entrée du menu contextuel de l'extension principale. Les options sont stockées dans une table, où chaque ligne définit un sous-menu. La table entière est stockée en tant que chaîne json dans chrome.local.storage
avec la clé jsondata
.Utilisation de données stockées pour définir des entrées de sous-menus
Le manifeste est:
"background": {
"persistent": true,
"scripts": [ "js/storage.js", "js/backgroundlib.js", "js/background.js" ]
},
...
"permissions": [ "storage", "contextMenus", "http://*/*", "https://*/*", "tabs", "clipboardRead", "clipboardWrite" ],
...
Dans le script d'arrière-plan, je suis en train d'obtenir les données à l'aide:
window.addEventListener('load', function() {
var key = 'jsondata';
storage.area.get(key, function (items){
console.log(items[key]);
build_submenu(items[key]);});
});
function build_submenu(json) {
console.log("build_submenu: " + json);
}
et build_submenu
doit alors appeler plusieurs chrome.contextMenus.create({... })
pour ajouter les sous-menus. Pour l'instant, je ne peux pas appeler build_submenu
. Est-ce que j'essaie de faire quelque chose qui n'est pas possible ou est-ce que je manque quelque chose d'évident?
Merci, F.
'storage.area' est défini dans js/storage.js à' chrome.storage.local' donc je dirais que ce n'est pas le problème ici – fraz
@fraz, qu'est-ce que j'ai maintenant? Est-ce que 'console.log (items [key])' a sorti quelque chose? –