Javascript XUL如何在菜单按钮中从菜单中分离按钮
我正在使用XUL开发一个Firefox插件,我有以下几点:Javascript XUL如何在菜单按钮中从菜单中分离按钮,javascript,firefox,menu,firefox-addon,xul,Javascript,Firefox,Menu,Firefox Addon,Xul,我正在使用XUL开发一个Firefox插件,我有以下几点: <toolbarpalette id="BrowserToolbarPalette"> <toolbarbutton id="MYBUTTON_ID" type="menu-button" class="toolbarbutton-1" label="Menu" tooltiptext="Menu" oncommand="checkLogin();" popup="login-popup">
<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>
现在,当我点击菜单按钮的“按钮”部分时,我正确地得到了登录弹出窗口,但是如果我点击箭头(“菜单”部分),它会显示菜单和菜单后面的登录弹出窗口,因为我认为当我点击箭头时也会触发“弹出”事件,但我只希望菜单出现。如何达到这个目标?我是XUL开发的新手。一个
按钮不能有两个弹出窗口(虽然技术上不止一个)
删除popup=
属性
从命令的中:
document.getElementById("login-popup")
.openPopup(event.originalTarget,
"after_start",
0, 0,
false, true,
event);
您可能必须首先检查.originalTarget
是否不是菜单项
,以避免在单击此类菜单项时触发弹出窗口
旁白:请在覆盖和覆盖脚本中使用足够唯一的DOM ID/类和足够唯一的变量/函数名,以避免与其他加载项或浏览器本身发生冲突。请参阅:我没有看到为或记录的弹出属性。我想弹出窗口是通过checkLogin()
显示的,弹出窗口是通过popup=“login popup”
属性显示的,check\u login()
是我制作的一个javascript函数,如果用户登录,它可以将我的图标从灰色切换为颜色。添加event.stopPropagation()
到菜单项的oncommand
属性,如果您还没有设置它们(如本文所述),那么这对我来说是个好办法!它起作用了!谢谢这样我也可以改变我想显示的弹出窗口!