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

这并不是说我要防止“查看源代码”或类似的愚蠢行为,而是要为某些元素制作一些自定义上下文菜单。


编辑:答案的答复:我已经尝试过:


<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>


肥皂起泡泡
浏览 430回答 3
3回答

斯蒂芬大帝

捕获onContextMenu事件,然后在事件处理程序中返回false。event.button无论如何,您也可以在某些浏览器中捕获click事件并使用哪个鼠标按钮触发该事件。

慕慕森

如果您不希望每次尝试右键单击时都向用户发出消息提醒,请尝试将其添加到您的正文标签中<body oncontextmenu="return false;">这将阻止所有对上下文菜单的访问(不仅是鼠标右键,还有键盘)但是,添加右键单击禁用器确实没有意义。具有浏览器基础知识的任何人都可以查看源并提取所需的信息。

Cats萌萌

我用了这个:document.onkeydown = keyboardDown;document.onkeyup = keyboardUp;document.oncontextmenu = function(e){&nbsp;var evt = new Object({keyCode:93});&nbsp;stopEvent(e);&nbsp;keyboardUp(evt);}function stopEvent(event){&nbsp;if(event.preventDefault != undefined)&nbsp; event.preventDefault();&nbsp;if(event.stopPropagation != undefined)&nbsp; event.stopPropagation();}function keyboardDown(e){&nbsp;...}function keyboardUp(e){&nbsp;...}然后,我在最后两个函数中捕获了e.keyCode属性-如果e.keyCode == 93,我知道用户可以释放鼠标右键或按下/释放上下文菜单键。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript