LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

网站HTML页面无法复制文本的拦截代码完整分析

admin
2026年7月7日 18:30 本文热度 40

网站HTML页面采用四层组合防复制拦截机制,按生效优先级从高到低拆解如下:

一、HTML body 内联事件拦截(最核心、最基础拦截)

页面<body>标签会绑定全套复制阻断事件,这是绝大多数老 ASP 论坛、OA 站点通用写法,也是你无法选中文本、右键复制的首要原因:
html
<body
oncontextmenu="return false"     <!-- 拦截鼠标右键,无法调出复制菜单 -->
onselectstart="return false"     <!-- 拦截鼠标拖动选中文本,划不动文字 -->
oncopy="return false"            <!-- 拦截Ctrl+C复制剪贴板操作 -->
oncut="return false"             <!-- 拦截剪切 -->
ondragstart="return false"       <!-- 拦截拖拽选中文字 -->
onmouseup="document.selection.empty()"  <!-- 松开鼠标立刻清空选中区域 -->
>

关键事件作用

  1. onselectstart:直接禁止鼠标划选文字,视觉上无法高亮文本,复制前提消失;

  2. oncontextmenu:右键直接失效,无法右键 “复制 / 查看源代码”;

  3. oncopy:就算强行选中,按 Ctrl+C 也会被拦截,剪贴板拿不到内容。

二、CSS 全局禁止文本选中(辅助拦截)

页面内置全局样式,强制所有页面元素禁止文本选择,双重锁死选中行为:
css
body {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}
作用:浏览器原生层面屏蔽文本高亮,即便 JS 被临时绕过,也无法选中文字。

三、全局 JS 事件监听拦截(兜底拦截)

页面底部会嵌入一段全局 JS 脚本,覆盖所有复制相关浏览器事件,兼容现代浏览器标准事件 API:
javascript
// 禁用右键菜单
document.addEventListener('contextmenu', e=>e.preventDefault());
// 禁止选中起始
document.addEventListener('selectstart', e=>e.preventDefault());
// 拦截复制、剪切事件
document.addEventListener('copy', e=>e.preventDefault());
document.addEventListener('cut', e=>e.preventDefault());
// 拦截Ctrl+A全选、Ctrl+C复制快捷键
document.addEventListener('keydown', function(e){
    if(e.ctrlKey && (e.key=='c' || e.key=='a')) e.preventDefault();
})
适配现代 Chrome/Edge/Firefox,弥补老式onxxx内联事件部分浏览器兼容漏洞。

四、ASP 论坛额外加固:DOM 选中清空脚本

老 ASP 论坛通用补充代码,鼠标松开瞬间清空选中内容,防止快速截取:
javascript
运行
document.onmouseup = function(){
    if(document.selection) document.selection.empty();
}

为什么这套代码会导致 “完全无法复制”

  1. 先通过selectstart+CSSuser-select:none让你根本选不中文字;

  2. 就算通过特殊手段选中,oncopy+copy 事件监听阻断剪贴板写入;

  3. 右键菜单被contextmenu禁用,无法通过右键复制;

  4. Ctrl+C、Ctrl+A 快捷键被 keydown 拦截,键盘复制通道关闭。

快速验证 & 临时破解方法(确认拦截代码生效)

  1. F12 打开开发者工具 → 设置 → 勾选禁用 JavaScript,刷新页面即可自由复制;

  2. 或地址栏执行代码一键清除所有拦截:

javascript
javascript:(function(){document.oncontextmenu=null;document.onselectstart=null;document.oncopy=null;document.body.style.userSelect='auto';})()

总结页面核心拦截代码清单

  1. 第一层:<body>内联oncontextmenu/onselectstart/oncopy事件(主拦截)

  2. 第二层:CSS user-select: none 禁止文本选中

  3. 第三层:JS addEventListener 全局监听复制、右键、快捷键事件

  4. ​第四层:onmouseup 清空选中区域兜底加固

其中 onselectstart="return false" 是最关键代码,直接让鼠标无法划选文字,是页面不能复制的根本原因。

该文章在 2026/7/7 18:30:36 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-2  粤公网安备44030602007207号