2013-05-04 149 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

相關問題