Javascript 根据所选文本的内容显示上下文菜单项的子集(firefox插件)

Javascript 根据所选文本的内容显示上下文菜单项的子集(firefox插件),javascript,firefox,firefox-addon,contextmenu,firefox-addon-sdk,Javascript,Firefox,Firefox Addon,Contextmenu,Firefox Addon Sdk,我有一个firefox上下文菜单,带有一个selectionContext,菜单上有三个项目。在菜单中,我有一个内容脚本,它监听onclick事件,并获取单击的项目和所选文本。一切正常 Menu item1 item2 item3 我试图根据所选文本的内容仅显示菜单项的子集,因为并非所有菜单项都适用于所有情况 除上述内容外,我还尝试在每个项目中添加一个selectionContext和另一个内容脚本,用于侦听context上的。使用此方法,我可以获取所选文本,但该项从未

我有一个firefox上下文菜单,带有一个
selectionContext
,菜单上有三个项目。在菜单中,我有一个内容脚本,它监听
onclick
事件,并获取单击的项目和所选文本。一切正常

Menu
    item1
    item2
    item3
我试图根据所选文本的内容仅显示菜单项的子集,因为并非所有菜单项都适用于所有情况

除上述内容外,我还尝试在每个项目中添加一个
selectionContext
和另一个内容脚本,用于侦听context上的
。使用此方法,我可以获取所选文本,但该项从未显示在菜单中,因为它被侦听
oncontext
事件的项目内容脚本取消。菜单的
onclick
内容脚本将永远不会应用于该项

我知道我可以使用
menu.addItem()
menu.removItem()
添加和删除项目。如果我使用
onclick
内容脚本,则项目将不会更新,直到单击该点时才更新,为时已晚,但我必须保留
onclick
,以便用户可以单击项目。如果我将
oncontext
内容脚本添加到项目或菜单,则项目或菜单不会显示,因为
oncontext
优于
onclick


如果有人能告诉我如何根据文本内容显示可使用点击内容脚本的菜单项子集,我将不胜感激。

除了
选择上下文
之外,我还使用
谓词文本
对其进行排序

//context attribute of the Menu
context: [contextMenu.PredicateContext(checkText),contextmenu.selectionContext()]




function checkText(data) {

       if(data.selectionText === null)
           return false;

       console.log('selectionText: ' + data.selectionText);

       //handle showing or hiding of menu items based on the text content.
       menuItemToggle(data.selectionText);

       return true;
};

function menuItemToggle(text){
    // do stuff here

};