如何在 JavaScript 中禁用右键单击上下文菜单

2022-08-30 02:25:17

并不是说我试图阻止“查看源代码”或类似的东西,而是我正在为某些元素制作一些自定义上下文菜单。

编辑:对答案的回应:我试过这个:

<a id="moo" href=''> </a>

<script type="text/javascript">
    var moo = document.getElementById('moo');

    function handler(event) {
        event = event || window.event;

        if (event.stopPropagation)
            event.stopPropagation();

        event.cancelBubble = true;
        return false;
    }

    moo.innerHTML = 'right-click here';

    moo.onclick = handler;
    moo.onmousedown = handler;
    moo.onmouseup = handler;
</script>

答案 1

如果您不关心在用户每次尝试右键单击时都向他们发送消息提醒,请尝试将其添加到您的 body 标签中

<body oncontextmenu="return false;">

这将阻止对上下文菜单的所有访问(不仅从鼠标右键,而且从键盘)

但是,添加右键单击禁用器确实没有意义。具有基本浏览器知识的任何人都可以查看源并提取所需的信息。


答案 2

捕获事件,并在事件处理程序中返回 false。onContextMenu

您还可以捕获单击事件,并检查在某些浏览器中使用 触发事件的鼠标按钮。event.button