Javascript 根据所选文本的内容显示上下文菜单项的子集(firefox插件)
我有一个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上的。使用此方法,我可以获取所选文本,但该项从未
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
};