2012-09-15 51 views
1

我为覆盖文件编写了Firefox的扩展。在Firefox扩展覆盖中更改javascript

当我点击主按钮,扩展负载entconnect.entImmediat,但是当我点击“Changez VOS identifiants”,扩展负载entconnect.openLogsentconnect.entImmediat。我怎样才能加载entconnect.openLogs当我点击“Changez vos标识符”? 这是我的叠加代码:

<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

命令事件冒泡意味着它将由事件处理程序接收进一步向上的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();" 
+0

的第一个解决方案完美工作,谢谢! –

+0

@ user1673772:随意接受问题是否有帮助:http://stackoverflow.com/faq#howtoask –