-1

でコンテキスト・メニューを防ぐ - 以下のようなF10キーボードハンドラを:Shiftキーを押しながらF10、私は<kbd>SHIFT</kbd>持っている私のアプリケーションではFirefoxの

<!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(); 

このコンテキストメニューが表示されないようにする方法はありますか?

答えて

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(); 
       } 
    }); 

を、このコードが動作しない場合 - 焦点はで見つけていませんブラウザ、または他のエラーがあります。コードを試してみてください。

+0

おそらく、あなたのブラウザにあるあなたのdidn'tに焦点を当てます。 –

+0

ありがとう、私はFirefoxのインストールをアップグレードし、あなたが投稿した最初のスニペットが機能しているようです。 –

関連する問題