Firefox 工具栏上下文菜单显示内部工具栏按钮';s xul面板
我有一个Firefox 工具栏上下文菜单显示内部工具栏按钮';s xul面板,firefox,firefox-addon,xul,Firefox,Firefox Addon,Xul,我有一个工具栏按钮,当单击它时,会显示一个面板。当我右键单击面板时,会看到以下内容: 这与单击主工具栏甚至工具栏按钮时显示的上下文菜单相同 xul是: <toolbarpalette id="BrowserToolbarPalette"> <toolbarbutton id="testToolbarIcon" image="chrome://myext/content/images/aicon.png" type="panel"
工具栏按钮
,当单击它时,会显示一个面板。当我右键单击面板时,会看到以下内容:
这与单击主工具栏甚至工具栏按钮时显示的上下文菜单相同
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>
有没有关于如何阻止这种行为传递到面板的想法?在面板中添加一个
单击事件侦听器,并且/或者如果内存正常,应该这样做
另一种方法是不使用type=“panel”
按钮,将面板放在其他地方(popupper),然后使用.openPopup()
从js打开面板。要使按钮状态正确,需要在弹出窗口显示时执行button.open=true
,并在再次隐藏后恢复该状态(至少下载指示按钮就是这样做的)。
<toolbarbutton id="search-button" label="Search" type="panel" oncommand="signage.onMenuItemCommand(event);" onclick="signage.emptyFn(event);" ondblclick="signage.emptyFn(event);"></toolbarbutton>
而且效果很好 你好@nmaier。谢谢你的回答。我在面板和工具栏按钮上试过,但它总是阻止文本框上的右键单击上下文菜单(复制、粘贴等)。我想避免这种情况。只有在.originalTarget===panel
的情况下才能防止事件发生?在对一系列内容(面板、标签、间隔符、图像、框等)进行验证后,这可能会起作用,但我试图找出是否有更“本机”的方法来防止这种情况发生。嗯,我想您可以将其作为常规工具栏按钮,将面板放在弹出窗口中,而不是按钮的子对象,然后通过.openPanel(…)
从js打开面板。唯一其他常规面板按钮,下载按钮,不是type=“panel”
本身…是的。我也试过这样做,它看起来真的是我最好的选择。我唯一缺少的是如何在单击按钮时将其设置为选中按钮的样式(请参阅以了解区别。您知道如何复制它吗?
signage.emptyFn: function (event) {
event.preventDefault();
//event.stopPropagation();
},