我写的扩展名是: - 右键单击页面时,它会向背景发送消息。 - 后台检查存储,如果存储中存在项目,则将上下文菜单的标题更新为“启用”,如果不存在,则“禁用”。 - 当我单击上下文菜单项时,它将更新存储(将消息发送到后台并更新存储)。
一切正常,但上下文菜单标题更新速度慢。如果标题已经打开,则标题无法更新。
以下是内容:
if(document.body!==null&&document.body!==undefined){
clearInterval(_thread);
document.body.addEventListener("contextmenu", function(){
chrome.runtime.sendMessage({"updatecontextmenu":true, "url_host":location.hostname});
});
}
以下是背景知识的一部分:
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){
if(request.url_host!==null && request.url_host!==undefined && request.updatecontextmenu==true)
checkWhitelist(hostname(request.url_host), function(ok){
if(!ok){
chrome.contextMenus.update("my-context-menu", {"title": "Exclude"});
}else{
chrome.contextMenus.update("my-context-menu", {"title": "Include"});
}
});
});
chrome.contextMenus.onClicked.addListener(function (e) {//update storage});
它也会在第一次出现上下文菜单时更新,但不是正确的,只是在下一次(从第二次开始)。