我尝试创建一个chrome扩展程序,在右键单击元素时将DOM信息添加到上下文菜单(作为子项)。到目前为止,我所拥有的代码确实将我想要的信息放入上下文菜单中,而控制台日志显示了在正确的位置添加的子项(并且两者都没有错误),但是没有及时将它包含在初始渲染的上下文菜单
最终效果是,我必须右键单击元素两次才能看到首次点击创建的上下文菜单子项。
我目前的(略微简化的)代码如下:
内容脚本:
document.addEventListener("mousedown", function(event){
if(event.button == 2) {
chrome.runtime.sendMessage(event.target.nodeName);
}
}, true);
背景:
var parent = chrome.contextMenus.create({"title": "Node", "contexts":["all"]});
chrome.runtime.onMessage.addListener(
function(nodename, sender, sendResponse) {
chrome.contextMenus.create(
{"title": nodename, "parentId": parent});
});
的manifest.json
{
"manifest_version": 2,
"name": "My extension",
"description": "This is an example extension.",
"version": "0.1",
"permissions": ["contextMenus", "clipboardWrite"],
"background": {
"scripts": ["background.js"]
},
"content_scripts": [
{
"matches": ["http://*/*", "https://*/*", "*://*/*"],
"js": ["contentscript.js"]
}
]
}
有没有办法可以及时将信息添加到上下文菜单中以便将其包括在内?