2011-07-22 10 views
30

私はaWebGLゲームを作成しており、右クリックをコントロールとして使いたいと思っています。しかし、それはメニューを投げる。それを無効にすることは可能ですか?私は、おかげでヒントをdknaackクロムの右クリックメニューを無効にする

} 
else if (event.which == 2 || event.which == 3) 
{ 
    doRightClickControl(); 
    event.preventDefault(); 
    event.stopPropagation(); 

    return false; 
} 

を試してみました。

window.oncontextmenu = function(event) { 
    event.preventDefault(); 
    event.stopPropagation(); 
    return false; 
}; 

答えて

28

だけはやり過ぎである。この目的のためにjQueryを使用する:私はそれがこのように動作するようになりました。これは、トリックを行います:

(function() { 
    var blockContextMenu, myElement; 

    blockContextMenu = function (evt) { 
    evt.preventDefault(); 
    }; 

    myElement = document.querySelector('#myElement'); 
    myElement.addEventListener('contextmenu', blockContextMenu); 
})(); 

myElementは、ウィンドウで置き換えることができます。

+1

私は実際にjQueryのに引っ張らず、このようなことをやってしまいました。 – Chris

+2

Googleからのカジュアルリーダーの場合は、正当な理由がない限り、これを行わないでください。 [あなたのユーザーはあなたのサイトを軽蔑するかもしれません](http://superuser.com/questions/279166/how-do-i-set-google-chrome-to-not-allow-javascript-to-hijack-my-right-click -メニュー)。 – elias

2

使用この:クロム17でテスト

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<head> 
<title>disable rightclick menu - LabLogic</title> 
</head> 
<body> 
<script language="javascript" type="text/javascript"> 
    document.oncontextmenu=RightMouseDown; 
    document.onmousedown = mouseDown; 

    function mouseDown(e) { 
     if (e.which==3) {//righClick 
     alert("Disabled - do whatever you like here.."); 
    } 
} 
function RightMouseDown() { return false;} 
</script> 
</body> 
</html> 

、同様に他の新しいブラウザで動作

+0

FirefoxとChromeで正常に動作しましたが、Internet Explorer 8では動作しませんでした。そのページにエラーが表示され、次にエラーが発生します:nullまたはオブジェクトではありません。それを見てください.thanks btw :) – sachinjain024

関連する問題