首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用Firefox愚蠢的右键单击上下文菜单

禁用Firefox愚蠢的右键单击上下文菜单
EN

Stack Overflow用户
提问于 2013-05-05 02:05:23
回答 3查看 16.7K关注 0票数 4

我正在制作一个HTML5游戏,这需要使用右键点击来控制玩家。

我已经能够通过执行以下操作来禁用右键单击上下文菜单:

代码语言:javascript
运行
复制
<body oncontextmenu="return(false);">

然后我注意到,如果按住shift键并单击鼠标右键,Firefox中的上下文菜单仍然会打开!

因此,我还添加了这个JS来禁用它:

代码语言:javascript
运行
复制
document.onclick = function(e) { if(e.button == 2 || e.button == 3) { e.preventDefault(); e.stopPropagation(); return(false); } };

但是,如果您按住shift键,然后在Firefox中双击鼠标右键,它仍然会打开!

请告诉我如何一劳永逸地禁用这个该死的东西(我甚至愿意回到一些晦涩、老生常谈和不切实际的解决方案,只要它能工作)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-05-05 03:24:57

你永远不能在所有情况下完全禁用上下文菜单,因为firefox有一个设置,允许用户告诉浏览器忽略你试图拉出的hijinx。

注意:我使用的是mac,但是这个设置在所有平台上都是一样的。

也就是说,尝试event.preventDefault() (参见Vikash Madhow对另一个SO问题的评论:How to disable right-click context-menu in javascript)

票数 2
EN

Stack Overflow用户

发布于 2016-11-11 17:59:34

official documentation中有一个直接阻止上下文菜单事件的示例:

代码语言:javascript
运行
复制
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);
票数 2
EN

Stack Overflow用户

发布于 2013-06-16 13:38:59

代码语言:javascript
运行
复制
document.ondblclick = function(e) { 
    if(e.button == 2 || e.button == 3) {
        e.preventDefault();
        e.stopPropagation();
        return(false);
    }
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16377381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档