我有一个Firefox插件,可以使用下拉菜单创建多个按钮。每个下拉列表包含几个表示书签的菜单项。
几乎与书签工具栏上的书签文件夹或标签相同(在将它们拖到那里之后),它们也有书签菜单项的下拉列表。
我想在后面的下拉菜单项中重复使用已经存在的书签contextmenu 。
我已经找到了部分方法,但我陷入了困境(见下文):
var mi = doc.createElementNS(XUL_NS,'menuitem');
mi.setAttribute('class', 'menuitem-iconic bookmark-item menuitem-with-favicon');
mi.setAttribute('scheme', 'http');
//this gets the existing contextmenu all right
mi.setAttribute("context", "placesContext");
//this.pp = my own dropdown menupopup,
this.pp.appendChild(mi);
结果上下文菜单截图:
第一个(次要)问题:
在我右键单击自己之前,右键单击其中一个下拉项目之前,所有内容都显示为灰色。
第二(主要)问题:
当点击placesContext菜单的命令/菜单项时,命令(例如"打开"或"在新选项卡中打开")没有完成。什么都没发生。是否存在我的菜单项未命中的某些属性,以便" placesCmd_open"忽略它或者我真的必须覆盖placesContext的现有事件监听器甚至不同吗?!