0

我已经使用 oncontextmenu 在鼠标右键单击上调用函数,它在 firefox 上运行良好,但在 ie 上导致问题,上下文菜单也与函数一起出现。

我只需要在纯 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>
4

2 回答 2

1

您需要return false;在 contextmenu 事件中以防止出现默认菜单。

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

于 2012-05-07T14:37:32.183 回答
0

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

于 2012-05-07T14:40:31.007 回答