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

Need to disable "context menu" on right click and call a function on right click

本文关键字:右键 单击 上下文菜单 调用 菜单 函数 上下文      更新时间:2023-09-26

我使用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>
您需要

在上下文菜单事件中return false;以防止显示默认菜单。

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

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