Shift-F10,防止Firefox中的上下文菜单

时间:2017-11-13 19:27:19

标签: javascript firefox contextmenu preventdefault stoppropagation

在我的应用程序中,我有一个 SHIFT - F10 键盘处理程序,如下所示:

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
</head>
<body>
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script>
$(document).on('keyup keydown', function(e) {
  if (e.keyCode === 121 && e.shiftKey === true) {
    console.log('shift-f10 detected');
    e.preventDefault();
    e.stopPropagation();
    e.stopImmediatePropagation();
  }
});
</script>
</body>
</html>

但是,在最新版本的Firefox(至少是FF56)中,上下文菜单出现在页面的右上角:

context-menu appears when user presses shift-10

我在使用以下方法禁用上下文菜单时失败:

e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();

有没有办法阻止此上下文菜单出现?

1 个答案:

答案 0 :(得分:2)

尝试下一个代码:

 $document.on('contextmenu',  (ev) => {
        return false;
 });

或:

$(document).on('keydown', function(e) {
  if (e.keyCode === 121 && e.shiftKey === true) {
    return false;
  }
});

也许你可以使用:

 document.body.addEventListener('keydown',function(ev){
      if (ev.keyCode === 121 && ev.shiftKey === true)
               {
                 ev.preventDefault();
               }
    });

如果此代码不起作用 - 焦点无法在浏览器中找到,或者您有其他错误。试试吧。