Firefoxの拡張機能を開発していて、XULコードを中に入れたオーバーレイを表示するツールバーボタンがありますToolbarDisplayManager
。
<overlay id="custombutton-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton id="boycottToolbarButton" label="Label" tooltiptext="Label" type="menu" popup="ToolbarPopup" />
</toolbarpalette>
<popupset>
<panel id="ToolbarPopup" position="after_start" onpopupshowing="Refresh();">
<vbox class="ToolbarBody">
<box id="ToolbarDisplayManager" />
</vbox>
</panel>
</popupset>
</overlay>
「ToolbarDisplayManager」内で、次の構造のjavascript(「コンボボックス」など)を使用したmenupopupを使用してメニューリストを作成します。
<menulist id="combo">
<menupopup>
<menuitem>
<menuitem>
...
</menupopup>
</menulist>
問題は次のとおりです。クリックToolbarPopup
すると、イベントで「更新」機能が実行されpopupshowing
ます。しかし、オーバーレイが表示され、「コンボ」をクリックしてアイテムを選択すると、のpopupshowing
イベントがToolbarPopup
再度発生します。言い換えれば、2つの「ポップアップ」が互いに問題を抱えているようなものです。
オーバーレイが表示される直前に「更新」機能を実行する必要があります。私の構造はどこか間違っていますか?popupshowing
2つのネストされたポップアップとそのイベントを処理するにはどうすればよいですか?