0

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>
4

2 に答える 2

1

return false;デフォルトのメニューが表示されないようにするには、contextmenu イベントで行う必要があります。

一部のブラウザー (特に Firefox) はデフォルトで JavaScript によるコンテキスト メニューのブロックを許可しないため、そこで問題が発生する可能性があることに注意してください。

于 2012-05-07T14:37:32.183 に答える
0

onclick の代わりに onmousedown を試してください。これは、IE コンテキスト メニューが表示される前に実行される可能性があり、jQuery でデフォルトの動作を停止できる可能性があります。.preventDefault()

于 2012-05-07T14:40:31.007 に答える