2017-03-09 48 views

回答

0

您可以使用jQuery輕鬆截取它,並致電e.preventDefault()

var c = document.getElementById("myCanvas"); 
 
var ctx = c.getContext("2d"); 
 
ctx.beginPath(); 
 
ctx.arc(95,50,40,0,2*Math.PI); 
 
ctx.stroke(); 
 

 
$("#myCanvas").on("contextmenu",function(e){ 
 
    e.preventDefault(); 
 
    // show your custom context menu here or what ever 
 
    console.log("event: right-click on canvas triggered"); 
 
})
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta name="viewport" content="width=device-width"> 
 
    <title>JS Bin</title> 
 
</head> 
 
<body> 
 
<script src="https://code.jquery.com/jquery-3.1.0.js"></script> 
 
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"> 
 
</body> 
 
</html>

0

您可以通過添加事件偵聽器,文本菜單實現這一點:

document.addEventListener("contextmenu", function(e) { 
    console.log('right click!'); 
    e.preventDefault(); 
    }); 

的一塊的console.log只是爲了說明它的工作。你可以建立自己的函數來創建一個不錯的上下文菜單。

e.preventDefault()是防止默認上下文菜單加載的原因。


document.addEventListener("contextmenu", function(e) { 
 
    console.log('right click!'); 
 
    e.preventDefault(); 
 
    });
Right click here!

我希望這有助於。

0

if (document.addEventListener) { // IE >= 9; other browsers 
 
     document.addEventListener('contextmenu', function(e) { 
 
      alert("You've tried to open context menu"); //here you draw your own menu 
 
      e.preventDefault(); 
 
     }, false); 
 
    } else { // IE < 9 
 
     document.attachEvent('oncontextmenu', function() { 
 
      alert("You've tried to open context menu"); 
 
      window.event.returnValue = false; 
 
     }); 
 
    }
<body> 
 
Lorem ipsum... 
 
</body>