禁用右键单击特定div

时间:2018-01-16 11:16:38

标签: javascript

我正在寻找禁用对特定div进行右键单击的解决方案。我有这样做的代码,但它也显示一个警报(我修复了这个),它可以在整个页面上工作。

    <script language="JavaScript">
<!--
//Disable right mouse click Script
//By Oscar Frank
//For full source code, visit http://www.oscarmini.com
var message="";
///////////////////////////////////
function clickIE4(){
if (event.button==2){
return false;
}
}
function clickNS4(e){
if (document.layers||document.getElementById&&!document.all){
if (e.which==2||e.which==3){
return false;
}
}
}
if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS4;
}
else if (document.all&&!document.getElementById){
document.onmousedown=clickIE4;
}
document.oncontextmenu=new Function("return false")
// -->
</script>

有人可以帮助我让这项工作只有一个或多个特定的div吗?谢谢!我是个菜鸟。

3 个答案:

答案 0 :(得分:1)

您必须在特定div上添加一个事件(您可以通过id document.getElementById获取div)并为contextmenu添加一个事件侦听器。 例如:

    document.getElementById("divId").addEventListener("contextmenu ", function(){
       console.log("Right Click");
       return false;
    });

答案 1 :(得分:1)

在您尝试禁用右键单击事件的div上,您只需添加以下内容:

oncontextmenu="return false;"

示例:

<div oncontextmenu="return false;">This div won't have the right click menu</div>

答案 2 :(得分:0)

我想要做的就是根据我的理解禁用特定div中的鼠标右键单击。 你可以使用jQuery插件。这是您可以参考的代码。

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css">
        div{
          border: 2px solid black;
          height: 100px;
        }
    </style>
</head>
<body>
    <div id="demo">
    This is the Phone and NO ONE SHOULD RIGHT CLICK THIS! >:) 
    </div>

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

    <script type="text/javascript">
        $('#demo').bind('contextmenu', function(e) {
        return false;
    }); 
    </script>

</body>
</html>