zoukankan      html  css  js  c++  java
  • javascript 禁用浏览器控制台

     //禁止鼠标右击
          document.oncontextmenu = function() {
            event.returnValue = false;
          };
          //禁用开发者工具F12
          document.onkeydown = document.onkeyup = document.onkeypress = function(event) {
            let e = event || window.event || arguments.callee.caller.arguments[0];
            if (e && e.keyCode == 123) {
              e.returnValue = false;
              return false;
            }
          };
          let userAgent = navigator.userAgent;
          if (userAgent.indexOf("Firefox") > -1) {
            let checkStatus;
            let devtools = /./;
            devtools.toString = function() {
              checkStatus = "on";
            };
            setInterval(function() {
              checkStatus = "off";
              console.log(devtools);
              console.log(checkStatus);
              console.clear();
              if (checkStatus === "on") {
                let target = "";
                try {
                  window.open("about:blank", (target = "_self"));
                } catch (err) {
                  let a = document.createElement("button");
                  a.onclick = function() {
                    window.open("about:blank", (target = "_self"));
                  };
                  a.click();
                }
              }
            }, 200);
          } else {
            //禁用控制台
            let ConsoleManager = {
              onOpen: function() {
                alert("Console is opened");
              },
              onClose: function() {
                alert("Console is closed");
              },
              init: function() {
                let self = this;
                let x = document.createElement("div");
                let isOpening = false,
                  isOpened = false;
                Object.defineProperty(x, "id", {
                  get: function() {
                    if (!isOpening) {
                      self.onOpen();
                      isOpening = true;
                    }
                    isOpened = true;
                    return true;
                  }
                });
                setInterval(function() {
                  isOpened = false;
                  console.info(x);
                  console.clear();
                  if (!isOpened && isOpening) {
                    self.onClose();
                    isOpening = false;
                  }
                }, 200);
              }
            };
            ConsoleManager.onOpen = function() {
              //打开控制台,跳转
              let target = "";
              try {
                window.open("about:blank", (target = "_self"));
              } catch (err) {
                let a = document.createElement("button");
                a.onclick = function() {
                  window.open("about:blank", (target = "_self"));
                };
                a.click();
              }
            };
            ConsoleManager.onClose = function() {
              alert("Console is closed!!!!!");
            };
            ConsoleManager.init();
          }
  • 相关阅读:
    Spring框架ioc概括
    Hibernate之二级缓存
    Hibernate之HQL
    Hibernate一对多自关联、多对多关联
    数据结构 | 链表:1097 删除重复元素
    数据结构 | 链表:1074
    在pat考试中快速调整Dev-cpp颜色配置
    dijkstra算法的堆优化
    链式前向星-学习笔记
    图的遍历 | 1131地铁图: dfs复杂模拟题
  • 原文地址:https://www.cnblogs.com/sheep-fu/p/14481533.html
Copyright © 2011-2022 走看看