vue网站禁止右键以及禁止打开控制台,检测到控制台停止运行

news/2025/11/12 16:02:22/文章来源:https://www.cnblogs.com/youantianqin/p/19214415

App.vue参考:

 

<template>
<div id="app" @contextmenu.prevent="handleContextMenu">
<router-view />
</div>
</template>

<script>
export default {
data() {
return {}
},

computed: {},

watch: {},

created() {

},

mounted() {
this.disableRightClick();
this.disableDevTools();
},

methods: {
handleContextMenu(e) {
e.preventDefault();
this.$message.warning('右键功能已禁用');
},
// 禁止右键菜单
disableRightClick() {
// 全局禁止右键
document.addEventListener('contextmenu', (e) => {
e.preventDefault();
return false;
});

// 禁止文本选择(可选)
// document.addEventListener('selectstart', (e) => {
// e.preventDefault();
// return false;
// });

// 禁止拖拽
document.addEventListener('dragstart', (e) => {
e.preventDefault();
return false;
});
},
// 禁止开发者工具
disableDevTools() {
this.preventF12();
this.preventCtrlShiftI();
this.preventCtrlU();
this.detectDevTools();
},
// 禁止F12
preventF12() {
document.addEventListener('keydown', (e) => {
if (e.key === 'F12' || e.keyCode === 123) {
e.preventDefault();
// this.$message.error('开发者工具已禁用');
return false;
}
});
},

// 禁止Ctrl+Shift+I
preventCtrlShiftI() {
document.addEventListener('keydown', (e) => {
if (e.ctrlKey && e.shiftKey && e.keyCode === 73) {
e.preventDefault();
// this.$message.error('开发者工具已禁用');
return false;
}
});
},
// 禁止Ctrl+U
preventCtrlU() {
document.addEventListener('keydown', (e) => {
if (e.ctrlKey && e.keyCode === 85) {
e.preventDefault();
// this.$message.error('查看源代码已禁用');
return false;
}
});
},

// 检测开发者工具
detectDevTools() {
const checkDevTools = () => {
const widthThreshold = window.outerWidth - window.innerWidth > 160;
const heightThreshold = window.outerHeight - window.innerHeight > 160;

if (widthThreshold || heightThreshold) {
this.handleDevToolsDetected();
}
};

setInterval(checkDevTools, 1000);
},
handleDevToolsDetected() {
// 可以采取的措施:
// 1. 显示警告
// this.$message.error('检测到开发者工具,请关闭');
// return false;

// 2. 跳转到其他页面
// window.location.href = '/warning';

// 3. 清空控制台
console.clear();

// 或者强制停止脚本执行
window.stop();
document.write('');
document.close();
},

}
}
</script>

<style scoped>

</style>

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年卡盘式自定心坡口机优质厂家权威推荐榜单:切管机/钢板坡口机/倒角机源头厂家精选

在管道工程与金属加工领域,一台高性能的卡盘式自定心坡口机已成为提升焊接质量与施工效率的关键装备。 本文将基于技术实力、生产能力、产品质量、市场表现及服务体系等多维度核心指标,为您呈现2025年卡盘式自定心坡…

AI元人文:从被动执行到主动探索——基于三值张力的文明演进新范式

AI元人文:从被动执行到主动探索——基于三值张力的文明演进新范式 岐金兰 探索“Ai元人文构想”理论体系 2025年11月12日 摘要: AI元人文理论实现了从"价值对齐"到"价值权衡"的范式革命,通过价…

Java 获取 Excel 中工作表的名称 - 指南

Java 获取 Excel 中工作表的名称 - 指南2025-11-12 15:50 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block …

2025年现代风格卫生间隔断生产厂家权威推荐榜单:易清洁卫生间隔断/欧式卫生间隔断/养老院卫生间隔断源头厂家精选

在公共卫生空间设计日益注重功能与美观并重的今天,现代风格的卫生间隔断已成为商业空间、办公场所和公共建筑的重要配置。 根据建筑装饰行业数据显示,2024年中国公共卫生间隔断市场规模达到87亿元,年增长率稳定在12…

locust-WebSocket压测

连接WS的库有的是支持异步IO的,项目中我们推荐这样的库,但是压测时还是要选择同步的库。 异步 安装 pip install websockets代码示例 import asyncio import websockets import json import randomasync def mytest(…

11.11 CSP-S 模拟赛 T3. square

思路 太猎奇 考虑我们应该会 \(\mathcal{O} (\textrm{障碍物数}^2)\) 的做一次问题 但是这类问题其实还有一种 \(\mathcal{O} (\textrm{面积})\) 的做法 具体的, 令 \(f_{i, j}\) 表示 \((i, j)\) 这个点作为右下角时的…

2025年排渣阀订制厂家权威推荐榜单:陶瓷阀门/搪瓷阀门/铸铁阀门源头厂家精选

在电力、矿山、冶金等工业领域,排渣阀作为输送磨损性、腐蚀性介质的关键设备,其性能直接影响整个生产系统的稳定性和运营成本。 本文将基于企业实力、技术能力、产品质量、市场表现及服务体系等多维度核心指标,为您…

locust常用类和方法解析

from locust import HttpUser, task, between# 相当于模拟一个用户 class WebUser(HttpUser):# 服务器的地址host = http://localhost:8000# 下一个任务执行之前等待的时间,用于模式用户的思考时间wait_time = betwee…

locust高级特性详解

事件系统深度应用 全局事件监听 Locust的事件系统就像是一个"消息广播站",可以在特定时机执行自定义逻辑:@events.test_start.add_listener @events.test_stop.add_listener @events.user_error.add_liste…

Aoao Round 2 比赛总结

分数: \(100 + 25 + 20 + 0 = 145\) 好一个神秘 seq 赛。 T1 不难发现,一个符合要求的序列需要是连续的,且其中比 \(b\) 大的数和比 \(b\) 小的数数量相等。 因此,我们可以以 \(b\) 为起点,分别向两侧扫描,把比 …

基于遗传算法的PID控制器参数整定方法详解

基于遗传算法的PID控制器参数整定方法详解一、算法原理与核心流程 1. 遗传算法优化框架2. 关键参数编码染色体结构:采用实数编码直接表示Kp、Ki、Kd参数取值范围: Kp ∈ [0.1, 100], Ki ∈ [0, 50], Kd ∈ [0, 20] …

QT项目复盘:如何在有限资源下把桌面端做成‘高端应用’?

QT项目复盘:如何在有限资源下把桌面端做成‘高端应用’?项目背景:资源困境与“高端”诉求的矛盾 兰亭妙微曾接手某工业数据分析桌面应用开发,核心诉求是“高端化”——既要满足工程师对数据处理的高性能需求,又要…

11.12 联考总结

11.10 联考总结 前三题都很简单,但我二三题都调了较长的时间,很不好。 留给T4的时间不是很多。发现可以分解质因数,转化为网格图上不选相邻格的计数。理论复杂度是 \(O(\sqrt{N}\log_2N\log_3N2^{\log_3N})\) 似乎只…

揭开时序数据库的秘密:为何它是数据存储的未来?

在万物互联的时代,数据正以指数级速度增长。从智能工厂的传感器到金融市场的实时交易,从能源网络的监控到车联网的轨迹追踪,这些场景产生的数据都有一个共同特征——时间戳驱动。传统关系型数据库在处理这类高频、海…

Java中将String字符串转换为算术表达式并计算

在Java中,将字符串表示的算术表达式进行计算,可以借助现有的库,如Apache Commons JEXL或使用Java的内置脚本引擎JSR 223进行。但是,如果要自己解析和计算算术表达式,就需要零起步实现一个表达式解析器。这涉及到对…

按钮固定在底部

按钮固定在底部1 wxml<view class="fixed-bottom-btn"><view class="button" bindtap="goYuding">马上预定</view> </view> 2 wxss/* 固定在底部的按钮容器 *…

locust基础

它采用纯 Python 实现,是一个分布式用户负载测试的工具。 使用基于 Requests 库的客户端发起请求,使编写脚本大大简化; 在模拟并发方面摒弃进程和线程,完全基于时间驱动,采用协程(gevent)提供的非阻塞 IO 和 cor…

基于HSMS通信标准的SECS通讯程序

HSMS(High-Speed SECS Message Services)通信标准的SECS通讯程序开发 结合SEMI E37标准核心规范 一、HSMS协议核心机制 1. 连接模式与状态机模式 角色 关键流程被动模式 设备端(服务端) 监听端口(默认5000)→ 接…

设置fdfs自动启动

fdfs设置服务,且自启动很久以前的fdfs服务一直在跑,只是没有设置为服务,且无自启动。使用deepseek,指导我完成了整个设置,几乎无脑。 1、问deepseek,提示词如下执行ps -ef| grep fdfs显示如下,该如何创建服务?…