我有toolbarbutton
点击后会显示一个面板。当我右键单击面板时,我得到以下内容:
这是当我点击主工具栏甚至工具栏按钮时显示的相同上下文菜单。
xul是:
<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton id="testToolbarIcon"
image="chrome://myext/content/images/aicon.png"
type="panel"
class="toolbarbutton-1 chromeclass-toolbar-additional">
<panel id="testPanel"
type="arrow"
level="parent">
<vbox id="testbox" align="top" width="200" height="200">
<label value="Test Label" />
<textbox></textbox>
</vbox>
</panel>
</toolbarbutton>
</toolbarpalette>
有关如何阻止此行为传递给面板的任何想法吗?
答案 0 :(得分:2)
如果内存服务正确,则向面板添加click
事件侦听器.preventDefault()
和/或.stopPropagation()
应该可以解决问题。
另一种方法是不使用type="panel"
按钮,将面板放在其他位置(弹出集)并使用.openPopup()
从js打开面板。要使按钮状态正确,您需要在显示弹出窗口时执行button.open = true
,并在再次隐藏后再恢复(至少这是下载指示符按钮的作用)。
答案 1 :(得分:0)
我有
<toolbarbutton id="search-button" label="Search" type="panel" oncommand="signage.onMenuItemCommand(event);" onclick="signage.emptyFn(event);" ondblclick="signage.emptyFn(event);"></toolbarbutton>
,其中
signage.emptyFn: function (event) {
event.preventDefault();
//event.stopPropagation();
},
工作正常!