web项目添加防调试

新建js文件debug-vconsole.js

/**防止非法调试*/
(function () {
  function getLocationHrefParams(name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]); return null;
  }
  (function () {
    var notdebugger = !getLocationHrefParams("notdebugger"); //有notdebugger标识可以调试
    var origin = location.origin.indexOf("8080") != -1 && location.origin.indexOf("test") == -1;// 8080下且非test环境,可以调试

    if (notdebugger && origin) {
      (() => {
        function block() {
          if (window.outerHeight - window.innerHeight > 200 || window.outerWidth - window.innerWidth > 200) {
            document.body.innerHTML = "非法调试,请关闭调试后重新刷新页面";
          }
          setInterval(() => {
            (function () {
              return false;
            }
            ['constructor']('debugger')
            ['call']());
          }, 50);
        }
        try {
          block();
        } catch (err) { }
      })();
    }
  })();

  // 添加vconsole
  var script = document.createElement('script');
  // 设置<script>标签的src属性
  script.setAttribute('src', 'https://cdn.bootcdn.net/ajax/libs/vConsole/3.9.0/vconsole.min.js');
  // 将<script>标签插入到页面的<head>或<body>中
  document.head.appendChild(script);

  var getURLParameters = function () {
    var url = location.href
    return (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(
      (a, v) => ((a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1)), a),
      {}
    );
  }
  if (getURLParameters().vconsole) {
    window.addEventListener("load", function () {
      new VConsole();
    });
  }
})();

项目引用:

<!--文件内的代码会自动执行-->
<script src="./debug-vconsole.js"></script>

效果如下请,没有添加notdebugger
在这里插入图片描述

添加浏览器地址栏添加notdebugger=1,
在这里插入图片描述

可以打开调试页面,并且展示vconsole,去
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/207316.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

docker部署elasticsearch+kibana+head

前言 最近&#xff0c;项目需要使用elasticsearch&#xff0c;所以就想快速安装一个使用&#xff0c;最开始是docker安装了7.10.1版本。 后面计划使用Java开发&#xff0c;发现有 RestHighLevelClient 和 Elasticsearch Java API Client两种客户端连接方式。 然后网上查阅了一…

【微服务 SpringCloudAlibaba】实用篇 · Nacos配置中心

微服务&#xff08;6&#xff09; 文章目录 微服务&#xff08;6&#xff09;1. 统一配置管理1.1 在nacos中添加配置文件1.2 从微服务拉取配置 2. 配置热更新2.1 方式一2.2 方式二 3. 配置共享1&#xff09;添加一个环境共享配置2&#xff09;在user-service中读取共享配置3&am…

数字人可以为文化传播带来什么?

近日&#xff0c;由哈萨克斯坦驻华大使馆、中国外文局文化传播中心、中关村科幻产业创新中心联合发起的中哈青年友谊数字人怡漾和苏路&#xff08;Сұлу&#xff09;正式发布。其中&#xff0c;代表中方形象的数字人怡漾&#xff0c;不仅将成为中哈青年文化交流的标志与代言…

seq2seq:中英文翻译

文章目录 一、完整代码二、论文解读2.1 RNN模型2.2 Attention-based ModelsGlobal attentional modelLocal attentional model 2.3 Input-feeding Approach2.4 模型效果 三、过程实现3.1 导包3.2 数据准备3.3 构建相关类3.4 模型配置3.5 模型推理 四、整体总结 论文&#xff1a…

Facebook公共主页受限、被封?一文教你排雷解决

一、Facebook公共主页是什么&#xff1f; 现在人们的生活已经离不开各种社交媒体&#xff0c;只要有智能手机&#xff0c;或多或少会使用一些社交平台&#xff0c;而Facebook是一个拥有大量用户的社交平台。这对于各种企业而言&#xff0c;也是一个十分优秀的营销平台&#xf…

使用Docker安装部署Swagger Editor并远程访问编辑API文档

文章目录 Swagger Editor本地接口文档公网远程访问1. 部署Swagger Editor2. Linux安装Cpolar3. 配置Swagger Editor公网地址4. 远程访问Swagger Editor5. 固定Swagger Editor公网地址 Swagger Editor本地接口文档公网远程访问 Swagger Editor是一个用于编写OpenAPI规范的开源编…

四、虚拟机网络配置

目录 1、VMware网卡配置模式 1.1 桥接模式 1.2 NAT模式 1.3 仅主机模式 ​​​​​​​2、编辑虚拟机的网络编辑器 ​​​​​​​3、编辑Window的虚拟网卡 ​​​​​​​4、修改IP地址为静态 4.1 查看网卡名字 4.2 编辑修改网卡IP地址的配置文件 4.3 重启网络: 4.…

如何选择靠谱的安防监控系统?优秀的安防智能系统应该具备哪些特点?

随着科技的不断进步&#xff0c;安防智能系统变得越来越重要。当前的安防监控市场系统五花八门&#xff0c;用户该如何选择性比价高、功能又靠谱的平台&#xff1f;一个优秀的安防智能系统应该具备哪些特点&#xff1f;今天我们来针对这个话题讨论和分享一下。 1、高效性&…

Flutter页面刷新失败?看看是不是这个原因

文章目录 问题描述解决办法在控件A中定义回调函数在页面中使用控件A 原因分析回顾问题原因分析 setState使用注意事项上下文正确性异步更新避免深层嵌套避免频繁调用避免在 build 方法中调用避免在 dispose 方法中调用 问题描述 我用flutter开发了一个页面&#xff0c;页面上有…

java操作windows系统功能案例(三)

以下是一些 Java 操作 Windows 系统功能的案例&#xff1a; 打开 Windows 计算器 public class Calculator {public static void main(String[] args) throws Exception {Runtime.getRuntime().exec("calc.exe");} }打开 Windows 默认浏览器 public class Browser…

java调用mysql存储过程

一、背景 在mysql上定义了存储过程&#xff0c;然后我想每1分钟调用一次存储过程。于是我设置了一个event&#xff0c;但是这个事件默认的运行周期为天&#xff0c;我尝试修改成minute却不生效。所以我决定通过java代码来调用存储过程。 二、mysql存储过程 CREATE DEFINERroot…

【Go】protobuf介绍及安装

目录 一、Protobuf介绍 1.Protobuf用来做什么 2. Protobuf的序列化与反序列化 3. Protobuf的优点和缺点 4. RPC介绍 <1>文档规范 <2>消息编码 <3>传输协议 <4>传输性能 <5>传输形式 <6>浏览器的支持度 <7>消息的可读性和…

【西安交通大学考研】814/912计算机科学与技术初复试经验分享

【西安交通大学考研】814/912计算机科学与技术初复试经验分享 学校介绍专业情况学费 814/912考情考试科目参考书复试流程 几个常用网站视频版链接&#xff08;更详细&#xff0c;三连送资料&#xff09; 学校介绍 ①西安交通大学大学&#xff08;Xi’an Jiaotong University&a…

STM32Cube高效开发教程<基础篇>(十)----USART/UART通信

声明:本人水平有限,博客可能存在部分错误的地方,请广大读者谅解并向本人反馈错误。    本专栏博客参考《STM32Cube高效开发教程(基础篇)》,有意向的读者可以购买正版书籍进行学习,本书籍由王维波老师、鄢志丹老师、王钊老师倾力打造,书籍内容干货满满。 一、 功能概述…

MAMP Pro v6.8.1(PHP/MySQL开发环境)

MAMP Pro是一款专为Mac用户设计的全功能本地服务器软件&#xff0c;可以将电脑变成一个完整的Web开发环境。无论个人开发者、网站管理员还是团队协作&#xff0c;MAMP Pro都提供了强大的工具和便捷的管理方式&#xff0c;能够更加高效地构建和测试网站。 MAMP Pro的基本功能包括…

大数据之HBase(二)

Master详细架构 位置&#xff1a;namenode实现类&#xff1a;HMaster组成 负载均衡器&#xff1a;通过meta了解region的分配&#xff0c;通过zk了解rs的启动情况&#xff0c;5分钟调控一次分配平衡元数据表管理器&#xff1a;管理自己的预写日志&#xff0c;如果宕机&#xff…

三、C语言常见概念

目录 1. C语言是什么&#xff1f; 3. 编译器的选择 3.1 编译和链接 3.2 编译器的对比 6. main函数 7. printf 和 库函数 8. 关键字介绍 8.1 什么是预编译&#xff1f; 8.2 static 的关键词作用&#xff1f; 8.3 const 的作用 8.4 voliate 的作用 8.5 typedef 的作用…

Andrioid T 实现充电动画(2)

Andrioid T 实现充电动画&#xff08;2&#xff09; 以MTK平台为例&#xff0c;实现充电动画 效果图 资源包 修改文件清单 system/vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/prize_charge_layout.xmlsystem/vendor/mediatek/proprietary/packages/ap…

安装tensorflow tensorboardX

安装tensorflow、tensorflow_gpu 安装这两者的方法是一样的&#xff0c;只是命令不同&#xff0c;根据自己的需要对应修改名称即可。 不使用镜像会超时或者中断错误。 使用镜像安装tensorflow_gpu版本 我这里安装的是2.12.0版本&#xff0c;你可以根据自己的CUDA版本选择合适的…

excel+requests管理测试用例接口自动化框架

背景&#xff1a; 某项目有多个接口&#xff0c;之前使用的unittest框架来管理测试用例&#xff0c;将每个接口的用例封装成一个py文件&#xff0c;接口有数据或者字段变动后&#xff0c;需要去每个py文件中找出变动的接口测试用例&#xff0c;维护起来不方便&#xff0c;为了…