1

クリックするtoolbarbuttonとパネルが表示されます。パネルを右クリックすると、次のようになります。

不要なコンテキスト メニュー

これは、メイン ツールバーまたはツールバー ボタンをクリックしたときに表示されるものと同じコンテキスト メニューです。

シュルは次のとおりです。

<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()and/or.stopPropagation()は、メモリが正しく機能する場合、トリックを実行する必要があります。

もう 1 つの方法は、単純に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 に答える