微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 JavaScript 如何禁用右键单击或如何在单击滚动条时删除右键单击窗口中的检查元素选项

如何解决使用 JavaScript 如何禁用右键单击或如何在单击滚动条时删除右键单击窗口中的检查元素选项

我正在尝试禁用滚动条上的右键单击操作或删除页面上右键单击菜单窗口中的“检查元素”选项。我正在使用以下代码来满足我的要求。但是它遇到了一个我无法找到的问题,也没有想到其他解决方案。请在下面找到我的示例代码。请感谢任何帮助。

Sample Application - 使用此链接您可以检查代码

<html oncontextmenu="return false;">
   <head>
      <style>
      </style>
      <script >
         document.onkeypress = function (event) {
         event = (event || window.event);
         return keyFunction(event);
         }
         document.onmousedown = function (event) {
         event = (event || window.event);
         return keyFunction(event);
         }
         document.onkeydown = function (event) {
         event = (event || window.event);
         return keyFunction(event);
         }
         
         //disable right click script 
         var message="Sorry,right-click has been disabled"; 
         
         function clickIE() {if (document.all) {(message);return false;}} 
         function clickNS(e) {if 
         (document.layers||(document.getElementById&&!document.all)) { 
         if (e.which==2||e.which==3) {(message);return false;}}} 
         if (document.layers) 
         {document.captureEvents(Event.MOUSEDOWN);document.onmousedown=clickNS;} 
         else{document.onmouseup=clickNS;document.oncontextmenu=clickIE;} 
         document.oncontextmenu=new Function("return false")
         
         function keyFunction(event){
         //"F12" key
         if (event.keyCode == 123) {
         return false;
         }
         
         if (event.ctrlKey && event.shiftKey && event.keyCode == 73) {
         return false;
         }
         //"J" key
         if (event.ctrlKey && event.shiftKey && event.keyCode == 74) {
         return false;
         }
         //"S" key
         if (event.keyCode == 83) {
         return false;
         }
         //"U" key
         if (event.ctrlKey && event.keyCode == 85) {
         return false;
         }
         //F5
         if (event.keyCode == 116) {
         return false;
         }
         }
         
      </script>
   </head>
   <body >
      <iframe style="width:100%" height="473" src="https://africau.edu/images/default/sample.pdf#toolbar=0"></iframe>
      <div style="width:96%;height:473px;background-color:transparent;position:absolute;top:0px;max-width: 100%;">
   </body>
</html>

解决方法

右键单击默认行为是触发 contextmenu 事件,其默认行为是显示上下文菜单。

为了防止这种默认行为,请写下:

document.addEventListener('contextmenu',e => e.preventDefault());

请注意,它不会阻止人们使用 F12 访问开发者工具,您对此无能为力。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。