<statusbarpanel>
标签。如果你设置了正确的类,你可以抛出一个
<menupop>
里面,然后有一个弹出式菜单,当用户点击图标,像这样。。。
<statusbarpanel class="statusbarpanel-menu-iconic"
src="chrome://YourExtension/content/icon.png">
<menupopup>
<menuitem label="whatever" oncommand="doSomething();">
<menuitem label="whatever else" oncommand="doSomethingElse();">
</menupopup>
</statusbarpanel>
现在,使用其他弹出菜单,可以使用菜单标记嵌套一系列菜单:
<statusbarpanel class="statusbarpanel-menu-iconic"
src="chrome://YourExtension/content/icon.png">
<menu value="Old">
<menupopup>
<menuitem label="whatever" oncommand="doSomething();">
<menuitem label="whatever else" oncommand="doSomethingElse();">
</menupopup>
</menu>
<menu value="New>
<menupopup>
<menuitem label="yet another" oncommand="doYetAnotherSomething();">
</menupopup>
</menu>
</statusbarpanel>
<状态栏面板>
不允许
<menu>
孩子(好吧,它会允许的,但不会产生想要的效果)。
*编辑*
因为我不能把这个贴在回复的评论中(也不能得到语法着色之类的东西),下面是最终对我有用的东西(谢谢Sathish!):
<statusbarpanel class="statusbarpanel-menu-iconic"
src="chrome://YourExtension/content/icon.png" popup="stausBarPanelMenu">
</statusbarpanel>
<popup id="statusBarPanelMenu" position="start_before">
<menu value="Old">
<menupopup>
<menuitem label="whatever" oncommand="doSomething();">
<menuitem label="whatever else" oncommand="doSomethingElse();">
</menupopup>
</menu>
<menu value="New>
<menupopup>
<menuitem label="yet another" oncommand="doYetAnotherSomething();">
</menupopup>
</menu>
</popop>
哦,对于任何可能读到这篇文章的XUL开发人员来说,作为一个旁注:您真的应该消除“statusbarpanel中的menupopup”风格的弹出窗口。回答这个问题的样式同样易于学习/使用,显著地更强大,并且它依赖于可以与其他XUL元素一起使用的相同的弹出机制。整个“状态栏面板中的菜单”这只是一个混乱的、不需要的异常现象。