2011-07-22 145 views
30

我正在編寫一個WebGL遊戲,並希望使用右鍵單擊作爲控件。但是,它拋出了一個菜單。是否可以禁用?我試過在Chrome中禁用右鍵單擊菜單

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

    return false; 
} 

感謝dknaack的提示。我得到它這樣工作:

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

使用此:

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

測試鉻17,可與其他新的瀏覽器以及

+0

在Firefox和Chrome中工作正常,但不能在Internet Explorer 8中正常工作。測試它。它顯示頁面上的錯誤,然後錯誤是:這是空或不是一個對象..請看看它..謝謝btw :) – sachinjain024