工具栏上下文菜单显示在toolbarbutton的xul面板中

时间:2013-08-31 23:03:59

标签: firefox firefox-addon xul

我有toolbarbutton点击后会显示一个面板。当我右键单击面板时,我得到以下内容:

unwanted context menu

这是当我点击主工具栏甚至工具栏按钮时显示的相同上下文菜单。

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>

有关如何阻止此行为传递给面板的任何想法吗?

2 个答案:

答案 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();
},

工作正常!

相关问题