2013-05-04 6 views
2

Я делаю игру HTML 5, которая требует использования правой кнопки мыши для управления проигрывателем.Отключить контекстное меню контекстного контекстного меню Firefox

Я был в состоянии отключить контекстное меню правого щелчка, выполнив:

<body oncontextmenu="return(false);"> 

Тогда он пришел ко мне внимание, что если вы держите сдвиг и правую кнопку мыши, контекстное меню по-прежнему открывается в Firefox!

Так я отключил, что при добавлении этого JS, а также:

document.onclick = function(e) { if(e.button == 2 || e.button == 3) { e.preventDefault(); e.stopPropagation(); return(false); } }; 

Однако, если провести сдвиг, а затем дважды щелкните правой кнопкой мыши в Firefox все еще открывается!

Скажите, пожалуйста, как раз и навсегда отключить эту кровавую вещь (я даже хочу вернуться к неясному, хакерскому и непрактичному решению, если это работает).

+0

Отменить мероприятие в onmousedown – dandavis

+0

Уже пробовал это также. – CHRIS

ответ

2

Вы никогда не сможете полностью отключить контекстное меню во всех случаях, поскольку firefox имеет параметр, который позволяет пользователю указывать браузеру игнорировать такой хиджин, который вы пытаетесь вытащить. Примечание: Я нахожусь на mac, но этот параметр находится в хорошем состоянии в одном и том же месте на всех платформах.

Это, как говорится, попробуйте event.preventDefault() (см комментарий Vikash Madhow на этой другой SO вопрос: How to disable right-click context-menu in javascript)

+1

К сожалению, похоже, что параметры будут уходить в Firefox 23. – NoBugs

+0

@NoBugs У вас есть ссылка на это? Благодаря! – mikemaccana

+0

@nailer Просмотр содержимого в Firefox beta, нет Javascript-опции. https://developer.mozilla.org/en-US/docs/Mozilla/Firefox/Releases/23 – NoBugs

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

все еще пытаюсь заблокировать firebug – spksa

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

Да, это работает с Firefox 57 – gregn3

Смежные вопросы