最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - disableenable right click on a particular part of the html body - Stack Overflow

programmeradmin7浏览0评论

i want to disable right click on the webpage but i want enable right click on textarea. Hey wat is this provide answers dont post lot of ments on right click (lol). i dont care if people would see my source code, thats nt the point ... i just want to know how one can enable right click only in the textarea while disabling the rest

so any1 here know the javascript function that would perform the job ??

is the below code possible ??

<html>
<head>
<title>  Your Title  </title>
</head>
<body oncontextmenu="return false;">
<textarea  oncontextmenu="return true;">


</textarea>
</body>
</html>

-thanx in advance

-miss subanki

i want to disable right click on the webpage but i want enable right click on textarea. Hey wat is this provide answers dont post lot of ments on right click (lol). i dont care if people would see my source code, thats nt the point ... i just want to know how one can enable right click only in the textarea while disabling the rest

so any1 here know the javascript function that would perform the job ??

is the below code possible ??

<html>
<head>
<title>  Your Title  </title>
</head>
<body oncontextmenu="return false;">
<textarea  oncontextmenu="return true;">


</textarea>
</body>
</html>

-thanx in advance

-miss subanki

Share Improve this question edited Jul 13, 2010 at 7:18 subanki asked Jul 12, 2010 at 17:20 subankisubanki 1,42910 gold badges25 silver badges49 bronze badges 8
  • 1 nobody told you it's useless to forbid the right-click? it's absolute nonsense, and users can mimic the right-click! – user57508 Commented Jul 12, 2010 at 17:22
  • why oh why would you want to do that? – gblazex Commented Jul 12, 2010 at 17:23
  • Friends , i am asking my doubts here just for my knowledge, i am not interested in implementing it. – subanki Commented Jul 12, 2010 at 17:26
  • 4 My friend, rule no. 1: don't waste other people's time, no. 2: if you want to improve your knowledge, try to learn useful things. Like the ones that doesn't irritate users... – gblazex Commented Jul 12, 2010 at 17:29
  • 3 you people are only giving ments on the topic , if you dont want to tell me the answer thats fine with me ..but dnt pass useless things in post – subanki Commented Jul 12, 2010 at 17:30
 |  Show 3 more ments

7 Answers 7

Reset to default 4

To enable right click on a particular element on the body while disabling the right click on the rest of the body (in html), you wil have to put the required element (whose right click you want to enable) into an iframe. And disable the right click on main body like this....

Main Body

<html>
<head>
<title>Your Title</title>
</head>
<body  oncontextmenu="return false;">
<iframe src="frame1.html">
</iframe>
</body>
</html>

frame1.html

<html>
<body>
<textarea> Your text, u can right click here </textarea>
</body>
</html>

if anyone else has a better answer please post it here, thanx everyone.

What about: http://www.dynamicdrive./dynamicindex9/noright2.htm

But there's not much point disabling right click, it's easy to bypass and get content.

http://www.quirksmode/js/events_properties.html#button has probably all the information you need. You get the click event and test to see which keycode it is. Then choose to return false or true depending on where the click came from.

I have found one solution:

document.superListener = document.addEventListener;
document.addEventListener = function(type, listener, useCapture){
if(type != 'contextmenu')
    document.superListener(type, listener, !!useCapture);
};

from here: https://stackoverflow./a/3009161/3649420

let divs = $("div");
divs.each(function(i, v) {
  $(v).on("contextmenu", function() {
    return false;
  })
})
$(".no").off("contextmenu");
body {
  background: black;
}

.yes {
  width: 100px;
  height: 100px;
  background: tomato;
  text-align: center;
}

.no {
  width: 100px;
  height: 100px;
  background: cyan;
}
<script src="https://cdnjs.cloudflare./ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="yes">No Click</div>
<div class="no"></div>
<div class="yes">No Click</div>
<div class="no"></div>
<div class="yes">No Click</div>

The off() method removes event handlers that were attached with on(). jsfiddle => https://jsfiddle/dare444/we91t5gd/183/

You can disable the right click using javascript to keep the honest people honest. But the not so honest people can easily reverse this. If you are interested read on "oncontextmenu" property of html elements.

document.oncontextmenu = function(e) {
    var el = window.event.srcElement || e.target;
    var tp = el.tagName || '';
    if ( tp.toLowerCase() == 'input' || tp.toLowerCase() == 'select' || tp.toLowerCase() == 'textarea' )
    {
        return true;
    }
    else
    {
        return false;
    }
}
发布评论

评论列表(0)

  1. 暂无评论