我开发了一个firefox插件,状态栏上有一个简单的按钮。现在我希望得到正确的和左键单击。
Mi代码如下所示
<popupset>
<menupopup id="intransContextMenu" position="overlap">
<menuitem label="settings" onclick="alert('test');" type="checkbox"/>
<menuitem label="test" onclick="alert('test nr 2');" type="checkbox"/>
</menupopup>
</popupset>
<statusbar id="status-bar">
<statusbarpanel id="2" label="test" tooltip="savetip" context="intransContextMenu"/>
</statusbar>
右键单击测试标签打开菜单弹出窗口。 它似乎有效,但在右键单击标签TEST之前触发了左键单击。
有没有办法让我隔离右键和左键?左键单击时触发左键单击,右键单击时右键单击。
由于
答案 0 :(得分:5)
您应该创建自定义事件处理程序,而不仅仅是内联警报调用,并且在该处理程序中,您可以识别按下了哪个按钮:
function whichButton(e)
{
var btnCode = e.button;
switch (btnCode){
case 0 : alert('Left button clicked');
break;
case 1 : alert('Middle button clicked');
break;
case 2 : alert('Right button clicked');
break;
default : alert('Unexpected code: ' + btnCode);
}
}
<popupset>
<menupopup id="intransContextMenu" position="overlap">
<menuitem label="settings" onclick="alert('test');" type="checkbox"/>
<menuitem label="test" onclick="whichButton(event);" type="checkbox"/>
</menupopup>
</popupset>
另外,为了防止出现上下文菜单,您可以使用oncontextmenu事件处理程序:
<menuitem label="test" onclick="whichButton(event);" type="checkbox" oncontextmenu="event.preventDefault();"/>