javascript - 防止右键单击元素打开上下文菜单

标签 javascript html css

我希望我的网站在用户右键单击某个元素时进行自定义交互,<div class="myElement"></div> .因此,我不会在右键单击元素时弹出上下文菜单,以免破坏用户体验。有没有办法做到这一点(最好是在 CSS 中,但 vanilla js 也可以)?

期望:

.myElement {
    contextMenuOnRightClick: none,
}

最佳答案

最简单的方法是使用一些非常简单的 JavaScript:

<div class="myElement" oncontextmenu="return false;"></div>
  • oncontextmenu:显示上下文菜单(右键单击菜单)时触发事件。
  • return false;: 取消事件;这会阻止菜单显示。

更好的是,不要使用内联 JS,而是创建一个可重用的类名 .js-noMenu 并将其添加到任何应该阻止右键单击的元素。
将 JS 行放入您的 Javascript 文件中。

[...document.querySelectorAll(".js-noMenu")].forEach( el => 
 el.addEventListener('contextmenu', e => e.preventDefault())
);
<div class="js-noMenu">Right click me!</div>
<p>You <b>can</b> contextmenu me!</p>
<p class="js-noMenu">You cannot here</p>

基本上 Event.preventDefault() 阻止浏览器触发默认操作

关于javascript - 防止右键单击元素打开上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51958065/

相关文章:

html - 使用悬停时内联显示 div

javascript - Base64 图像转换 - 为什么?

javascript 替换允许的 html 标签

javascript - Jquery - Windows Load 如何保持更长时间

html - 尽管计算(看似正确),但在 h1 上设置 margin-top 并没有复制 px 值

html - 如何在 flexbox slider 中正确显示多个图像?

python - 使用 STATICFILES_DIRS 而不是 STATIC_URL 时加载静态 css 和 js

css - 有没有办法引用具有多个类的 html 元素?

javascript - 无法摆脱对禁用按钮的悬停效果

javascript - ab 是一个数字,求 (a+b)^n = ab