需要在右键单击时禁用“上下文菜单”并在右键单击时调用函数

时间:2012-05-07 14:33:29

标签: javascript html javascript-events

我已经使用oncontextmenu在鼠标右键调用一个函数,它在firefox上正常工作但导致问题,即上下文菜单也随函数出现。

我只需要调用相同的函数,在纯javascript中右键和左键单击一些参数。

<html>
<script>
function mouseDown(e,param) {
  if (parseInt(navigator.appVersion)>3) {
    var clickType=1;
    if (navigator.appName=="Netscape") clickType=e.which;
    else clickType=event.button;

    if (clickType==1) {
      alert("left" +param);
    }

    if (clickType!=1) { 
      alert('right' + param);
    }
 }
 return true;
}

</script>
<body>
<a href="javascript:void(0)"
   onclick="mouseDown(event,'test1');"
   oncontextmenu="mouseDown(event,'test2');">mouse</a>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

您需要在contextmenu事件中return false;,以防止显示默认菜单。

请记住,某些浏览器(特别是Firefox)默认不允许JavaScript阻止上下文菜单,因此您可能会遇到问题。

答案 1 :(得分:0)

尝试onmousedown而不是onclick,因为这可能会在IE上下文菜单出现之前运行,然后您可以使用jQuery .preventDefault()停止默认行为