侧边栏壁纸
博主头像
liveJQ博主等级

沒有乐趣,何来开始

  • 累计撰写 146 篇文章
  • 累计创建 60 个标签
  • 累计收到 2 条评论
Web

JS在网页上禁用鼠标右击等操作

liveJQ
2020-03-18 / 0 评论 / 0 点赞 / 596 阅读 / 1,435 字 / 正在检测是否收录...
广告 广告

一本正经

或许我们都养成了个“坏习惯”,在浏览器中碰到陌生的东西时,喜欢右击检查或按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(推荐,有点大)
0

评论区