use*_*r25 3 javascript google-chrome-extension
不久前,我可以在 Google Chrome 扩展程序中为上下文菜单保存创建项目的 ID:
背景.js:
var myItem;
if (myItem !== "MyItem") {
myItem = chrome.contextMenus.create({
title: "My item",
id: 'MyItem',
contexts: ["page"]
});
}
Run Code Online (Sandbox Code Playgroud)
但是现在当我首先打开 Chrome 时,它说:
运行 contextMenus.create 时未选中的 runtime.lastError:无法创建具有重复 id MyItem 的项目
(来自调试控制台)
所以当我关闭 Chrome 时,它不再记得我的变量“myItem”(它的数据)。它只在 Chrome 打开时记住。
那么现在我应该使用chrome.storage.local.get还是set保存我的上下文菜单项的 ID?
更新:
问题是"persistent": false背景清单中的一个:
"background": {
"scripts": [ "background.js" ]
},
Run Code Online (Sandbox Code Playgroud)
已删除,现在可以正常使用[已解决]
本地存储绝对是一种选择。
虽然另一种选择是removeAll在创建之前:-
chrome.contextMenus.removeAll(function() {
chrome.contextMenus.create({
title: "My item",
id: 'MyItem',
contexts: ["page"]
});
});
Run Code Online (Sandbox Code Playgroud)
当我有动态子菜单等时,我使用这种方式,发现重新创建整个菜单比尝试确定应该添加/删除哪些选项要容易得多。
您应该只在事件中创建菜单项chrome.runtime.onInstalled。
另请参阅: https: //developer.chrome.com/extensions/background_pages#listeners
| 归档时间: |
|
| 查看次数: |
2997 次 |
| 最近记录: |