1

我想从称为“菜单键”的键盘键中禁用“上下文菜单”。密钥代码是 93。

在此处输入图像描述

<script type="text/javascript">
document.onkeydown = function (e) {
    if (e.which == 93) {
        return false;
    }
}
</script>

我已经在一些浏览器应用程序上测试了上面的代码:

✔ IE 10

✔ 火狐 22

✔ 歌剧 12.16

✘ 铬 28.0.1500.95

? 野生动物园 xx

✔ 成功 | ✘ 没用 | ? 未测试

有大佬可以解决吗?为什么它在 chrome 上不起作用?

4

3 回答 3

3

我不知道为什么您使用的方法不起作用,但您可以这样做:

window.oncontextmenu = function(event) {
    return false;
};
于 2013-08-03T05:46:18.853 回答
2

你可以

  1. 如果按键被按下,则创建一个标志
  2. 添加一个“keydown”事件监听器
    • 存储用户是否按下了上下文菜单键,
  3. 添加一个“上下文菜单”事件监听器
    • 如果按键被按下
    • 防止默认操作
    • 将标志设置为假

var keypressed = false;
window.addEventListener ("keydown",function (e) { 
   if (e.keyCode === 93) keypressed = true;
});

window.addEventListener ("contextmenu",function (e) {
    if (keypressed) {
         e.preventDefault(e);
         keypressed = false;
    }
})

这个想法是仅在按下的键时隐藏上下文菜单,如标题所示,但仍允许在鼠标单击等时使用。

如果您想完全禁用它,请改为使用@nnnnnn's Answer =)

这是仅在 Chrome 29 中测试过小提琴

于 2013-08-03T05:47:06.273 回答
0

禁用没有标签的全键盘:

document.onkeydown = function (e) {
    if (e.which == 9) {
        return true;
    }
    else{
       return false;
    }
};
于 2014-04-08T11:25:57.390 回答