我正在制作HTML 5游戏,需要使用右键点击来控制播放器。
我可以通过执行以下操作来禁用右键单击上下文菜单:
<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中双击它仍然会打开它!
请告诉我如何一劳永逸地禁用这个血腥的东西(我甚至愿意恢复一些模糊,黑客和不实用的解决方案,只要它有效)。
答案 0 :(得分:2)
在所有情况下,您永远无法完全禁用上下文菜单,因为firefox有一个允许用户告诉浏览器忽略此类hijinx的设置。 注意:我在Mac上,但这个设置在所有平台上的位置相同。
话虽如此,试试event.preventDefault()(参见Vikash Madhow对其他SO问题的评论: How to disable right-click context-menu in javascript)
答案 1 :(得分:2)
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);
答案 2 :(得分:1)
document.ondblclick = function(e) {
if(e.button == 2 || e.button == 3) {
e.preventDefault();
e.stopPropagation();
return(false);
}
};