繁体   English   中英

工具栏上下文菜单显示在工具栏按钮的xul面板内部

[英]Toolbar context menu showing inside toolbarbutton's xul panel

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

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

如果可以正确使用内存,则在面板上添加click事件监听器和.preventDefault()和/或.stopPropagation()应该可以解决问题。

另一种方法就是不使用type="panel"按钮,将面板放置在其他位置(弹出窗口),然后使用.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>

哪里

signage.emptyFn: function (event) {
    event.preventDefault();
    //event.stopPropagation();
},

并正常工作!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM