一本正经

或许我们都养成了个“坏习惯”,在浏览器中碰到陌生的东西时,喜欢右击检查或按F12。然而,有时候却不能如你所愿 :T (此时你很可能正在尝试…并气急败坏…偷笑)

方式一

基础操作,能阻止大部分的使用者

//禁用F12
    document.onkeydown = function (e) {
      var keyCode = e.keyCode || e.which || e.charCode;
      if (keyCode == 123) {
        e.returnValue = false;
      }
    }
//禁用鼠标右击检查
    document.oncontextmenu = function () {
      return false;
    }

如果只想在输入框中使用鼠标右击,则可以:

    //除输入框之外禁用鼠标右击检查 
    document.oncontextmenu = function (e) {
        try {
            var the = e.srcElement;
            //大写才能识别成功
            if (the.tagName == "INPUT" || the.tagName == "TEXTAREA") {
                return true;
            }
            return false;
        } catch (error) {
            return false;
        }
    }

方式二

进阶操作,终极杀招,能阻止极端的使用者

//禁用F12及Ctrl + Shift  + i/j/c
    document.onkeydown = function (e) {
      var keyCode = e.keyCode || e.which || e.charCode;
        //若通过禁用字母,则很可能影响评论功能
      if (keyCode == 123 || (e.ctrlKey && e.shiftKey)) {
        e.returnValue = false;
      }
    }
//禁用鼠标右击检查
    document.oncontextmenu = function () {
      return false;
    }

BTW

什么终极杀招呀,直接复制当前网址,在新标签页上提前打开控制台,然后贴上刚才复制的网址即可,简单粗暴,无懈可击;又或者,当前页面若存在广告,则可以作为右击检查的入口,因为外部的js脚本无法对iframe的内部生效。So,以上根本没啥卵用,唯一的好处就是可以防止误触操作,但为了方便自己,只使用了方式一。我当时遇到的时候,也跟你一样气急败坏。其实,这只是某个闲人的恶作剧而已 : )




这个站屏蔽源码查看做得挺绝的,盘它 🙃 ,它甚至让我的浏览器卡死在这个标签页上(我很怀疑它做了些无限循环的操作),只能通过强制杀死进程才关掉了这个页面…




后来 … ,后来就直接搞成了跳转,就下面这两个脚本,好像还挺好玩的呀 😋 ~

<script src="https://blog-static.cnblogs.com/files/LyShark/dev.js"></script>
<script type="module"> window.addEventListener('devtoolschange', event => { window.location.href="/"}); </script>

相关资料

  1. js键盘按钮keyCode及示例大全
  2. Web API 接口参考:KeyboardEvent.charCode
  3. 第一种:devtools-detect(通过宽高判断,可投机取巧,几KB)
  4. 第二种:devtools-detect(推荐,有点大)
留言评论
推荐阅读
  • HTTP报文

    前言在TCP/IP四层模型之下,我们的计算机按部就班地执行着自己的任务。在网上冲浪的过程中,客户端在我们看不见的地方默默地发送着报文,...

    HTTP报文
  • ES6中的let和const关键字

    重新声明 在ES6之前可以重新声明定义同一var变量,例如: var x = 10; var x = 2; console.log(...

    ES6中的let和const关键字
  • JavaScript查漏补缺

    数组排序 arr.sort()可以按arr数组元素的首字母排序(依据ASCII值从小到大排序)。由于sort()函数会调用toStri...

    JavaScript查漏补缺