【问题标题】:Need to disable "context menu" on right click and call a function on right click需要在右键单击时禁用“上下文菜单”并在右键单击时调用函数
【发布时间】:2012-05-07 22:49:50
【问题描述】:

我使用 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>

【问题讨论】:

    标签: javascript html javascript-events


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2013-10-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-17
        • 2016-02-04
        • 1970-01-01
        相关资源
        最近更新 更多