我正在使用XUL开发一个Firefox插件,我有以下内容:
<toolbarpalette id="BrowserToolbarPalette">
<toolbarbutton id="MYBUTTON_ID" type="menu-button" class="toolbarbutton-1" label="Menu" tooltiptext="Menu" oncommand="checkLogin();" popup="login-popup">
<menupopup id="mymenu">
<menuitem label="Menu 1" oncommand="toDo(); event.stopPropagation();"/>
<menuitem label="Menu 2" oncommand="toDo(); event.stopPropagation();"/>
<menuitem label="Menu 3" oncommand="toDo(); event.stopPropagation();"/>
</menupopup>
</toolbarbutton>
</toolbarpalette>
<popupset>
<panel id="login-popup" backdrag="true" type="arrow" noautohide="false">
<vbox flex="1">
<hbox flex="1">
<label control="user-label" width="60px" value="Username:"/>
<textbox id="user"/>
</hbox>
<hbox flex="1">
<label control="pwd-label" width="60px" value="Password:"/>
<textbox id="pwd" type="password"/>
</hbox>
<hbox>
<checkbox label="Ricordami" checked="false"/>
</hbox>
<hbox flex="1">
<spacer flex="1"/>
<button id="pwd" width="30px" label="Login"/>
</hbox>
</vbox>
</panel>
</popupset>
现在,当我点击菜单按钮的“按钮”部分时,我正确地获得了登录弹出窗口,但如果我点击箭头(“菜单”部分),它会显示menupopup和menupopup背后的登录弹出窗口因为我认为当我点击箭头时“弹出”事件也会被触发,但我只想要显示menupopup。怎么达到这个?我是XUL开发的新手。
答案 0 :(得分:0)
单个popup
不能有两个button
(虽然技术上不止一个)。
popup=
属性。oncommand
的document.getElementById("login-popup")
.openPopup(event.originalTarget,
"after_start",
0, 0,
false, true,
event);
.originalTarget
是否不是menuitem
,以免在点击此popup
时触发menuitem
。除了之外:请在覆盖和覆盖脚本中使用足够独特的DOM ID /类和唯一足够的变量/函数名称,以避免与其他加载项或浏览器本身发生冲突。请参阅:JavaScript Object Management