2013-05-04 142 views
2

我想提出一个HTML 5游戏,需要使用鼠标右键来控制播放器。禁用Firefox的傻右键单击上下文菜单

我已经能够做禁用右键单击上下文菜单:

<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

取消的onmousedown事件 – dandavis 2013-05-04 18:33:51

+0

事件已经尝试过这一点。 – CHRIS 2013-05-04 18:39:59

回答

2

你将永远无法完全禁止在所有情况下的上下文菜单,火狐有一个设置,允许用户告诉浏览器忽略这样hijinx因为你是想拉。 注:我在Mac上,但是这个设置是相当五脏俱全在所有平台上的同一个地方。

话虽这么说,尝试event.preventDefault()(见Vikash Madhow对这个其他SO问题评论: How to disable right-click context-menu in javascript

+1

可悲的是,似乎选项将在Firefox 23 – NoBugs 2013-07-06 06:03:48

+0

@NoBugs离开你有一个参考?谢谢! – mikemaccana 2013-07-19 13:37:32

+0

@nailer在Firefox beta版中查找内容选项,没有Javascript选项。 https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/23 – NoBugs 2013-07-20 01:07:01

1
document.ondblclick = function(e) { 
    if(e.button == 2 || e.button == 3) { 
     e.preventDefault(); 
     e.stopPropagation(); 
     return(false); 
    } 
}; 
+0

仍然在努力阻止萤火虫 – spksa 2013-06-16 05:39:50

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); 
+0

是的,这是作为火狐57 – gregn3 2017-12-03 02:20:54

相关问题