我为firefox写了一个带覆盖的扩展程序。
当我点击主要按钮时,扩展程序会加载entconnect.entImmediat
,但当我点击“Changez vos identify”时,扩展程序会加载entconnect.openLogs
和entconnect.entImmediat
。当我点击“Changez vos identify”时,如何才能加载entconnect.openLogs?
这是我的叠加代码:
<overlay id="entconnect-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script src="chrome://entconnect/content/entconnect.js"/>
<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton class="toolbarbutton-1 chromeclass-toolbar-additional" id="entconnect-addbar" label="Allez sur votre ENT" type="menu-button" oncommand="entconnect.entImmediat();">
<menupopup>
<menuitem label="Changez vos identifiants" oncommand="entconnect.openLogs();"/>
</menupopup>
</toolbarbutton>
</toolbarpalette>
</overlay>
答案 0 :(得分:0)
命令事件冒泡意味着它将由DOM层次结构中的事件处理程序接收。如果您已经处理过,可以prevent the event from bubbling further up:
oncommand="entconnect.openLogs();event.stopPropagation();"
或者您可以查看event target:
oncommand="if (event.target.localName != 'menuitem') entconnect.entImmediat();"
或者您只需处理triggered at the current element的事件:
oncommand="if (event.eventPhase == event.AT_TARGET) entconnect.entImmediat();"