1

我有一个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>

关于如何阻止这种行为传递给面板的任何想法?

4

2 回答 2

2

向面板添加一个click事件侦听器.preventDefault()和/或.stopPropagation()应该做的伎俩,如果内存服务正确。

另一种方法是根本不使用type="panel"按钮,将面板放在其他地方(弹出集)并使用 .js 从 js 打开面板.openPopup()。要获得正确的按钮状态,您需要button.open = true在显示弹出窗口时执行 a ,并在它再次隐藏后恢复(至少这是下载指示器按钮所做的)。

于 2013-09-01T15:07:19.377 回答
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();
},

并且工作正常!

于 2013-12-04T17:00:32.200 回答