我正在制作一个HTML5游戏,这需要使用右键点击来控制玩家。
我已经能够通过执行以下操作来禁用右键单击上下文菜单:
<body oncontextmenu="return(false);">
然后我注意到,如果按住shift键并单击鼠标右键,Firefox中的上下文菜单仍然会打开!
因此,我还添加了这个JS来禁用它:
document.onclick = function(e) { if(e.button == 2 || e.button == 3) { e.preventDefault(); e.stopPropagation(); return(false); } };
但是,如果您按住shift键,然后在Firefox中双击鼠标右键,它仍然会打开!
请告诉我如何一劳永逸地禁用这个该死的东西(我甚至愿意回到一些晦涩、老生常谈和不切实际的解决方案,只要它能工作)。
发布于 2013-05-05 03:24:57
你永远不能在所有情况下完全禁用上下文菜单,因为firefox有一个设置,允许用户告诉浏览器忽略你试图拉出的hijinx。
注意:我使用的是mac,但是这个设置在所有平台上都是一样的。
也就是说,尝试event.preventDefault() (参见Vikash Madhow对另一个SO问题的评论:How to disable right-click context-menu in javascript)
发布于 2016-11-11 17:59:34
在official documentation中有一个直接阻止上下文菜单事件的示例:
document.oncontextmenu = function () { // Use document as opposed to window for IE8 compatibility
return false;
};
window.addEventListener('contextmenu', function (e) { // Not compatible with IE < 9
e.preventDefault();
}, false);
发布于 2013-06-16 13:38:59
document.ondblclick = function(e) {
if(e.button == 2 || e.button == 3) {
e.preventDefault();
e.stopPropagation();
return(false);
}
};
https://stackoverflow.com/questions/16377381
复制相似问题