agr*_*is1 9 html javascript css
当用户右键单击元素时,我希望我的网站能够进行自定义交互<div class="myElement"></div>.因此,当右键单击元素时,我不会弹出上下文菜单,以免破坏UX.有没有办法做到这一点(最好是CSS,但香草js也有效)?
期望:
.myElement {
contextMenuOnRightClick: none,
}
Run Code Online (Sandbox Code Playgroud)
Toa*_*gma 10
最简单的方法是使用一些非常简单的JavaScript:
<div class="myElement" oncontextmenu="return false;"></div>
Run Code Online (Sandbox Code Playgroud)
oncontextmenu:当显示上下文菜单(右键单击菜单)时触发事件.return false;:取消活动; 这会阻止菜单显示.更好的是,不是使用内联JS,而是创建一个可重用的className .js-noMenu并将其添加到任何应该阻止右键单击的元素.
将JS行放入您的Javascript文件中.
[...document.querySelectorAll(".js-noMenu")].forEach( el =>
el.addEventListener('contextmenu', e => e.preventDefault())
);Run Code Online (Sandbox Code Playgroud)
<div class="js-noMenu">Right click me!</div>
<p>You <b>can</b> contextmenu me!</p>
<p class="js-noMenu">You cannot here</p>Run Code Online (Sandbox Code Playgroud)
基本上Event.preventDefault()阻止浏览器触发默认操作