当前位置: 首页 > news >正文

前端开发_怎么禁止用户复制内容

在开发前端项目时,有时会有这种要求,禁止用户复制文本内容,本文分享几种简单的方法。

一、JS阻止默认事件

禁用复制:

document.addEventListener('copy', e => {e.preventDefault()
})

禁止剪切:

document.addEventListener('cut', function(e) {e.preventDefault();
});

禁用鼠标右键复制:

document.addEventListener('contextmenu', function(e) {e.preventDefault();
});

禁用键盘快捷键复制:

document.addEventListener("keydown", function (e) {if ((e.ctrlKey || e.metaKey) && e.key === "c") {e.preventDefault();}});


二、CSS样式控制

禁用键盘快捷键:,让用户无法选中对应内容。仅提供基础防护,敏感内容应通过服务端加密或权限控制实现真正的内容保护。前端防复制主要适用于阻止普通用户的随意复制行为。

.no-copy {user-select: none;position: relative;
}
.no-copy::after {content: "禁止复制";position: absolute;right: -120px;
}

user-select是一个CSS属性,用于控制用户能否选择页面上的文本内容。这个属性在创建特殊交互体验或保护内容时非常有用。

user-select属性取值及效果

取值描述示例效果
auto默认值。文本是否可选取决于浏览器默认行为常规文本选择
none元素及其子元素的文本不可被选中完全禁止文本选择
text文本可以被选中常规文本选择
all点击元素会选中其所有文本内容(包括子元素)单击选中整块内容
contain允许在元素内选择文本,但选择范围被限制在该元素边界内(实验性特性)选择不会扩展到元素外部
element非标准值(IE特有),效果类似containIE浏览器中的限制选择

三、 Canvas渲染文本

const canvas = document.createElement('canvas');
const ctx = canvas.getContext('2d');
ctx.fillText("文本内容不可复制", 10, 50);
document.body.appendChild(canvas);

四、加上版权信息

允许复制,但是会加上版权信息。

document.addEventListener('copy', function(e) {const selection = window.getSelection().toString();const copyright = `\n\n----------------\n文章来源:@开心小老虎`;e.preventDefault();e.clipboardData.setData('text/plain', selection + copyright);
});

http://www.dtcms.com/a/318474.html

相关文章:

  • 计算机网络:如何判断B或者C类IP地址是否划分了子网
  • 设备 AI 知识库如何提升管理效率?实测分享
  • 【STM32U385RG 测评】基于VSCode的STM32开发环境搭建
  • 认识河豚毒素!剧毒神经毒素详解!
  • 向量数据库基础夯实:相关概念的详细介绍
  • 淘宝/天猫商品详情API详解(tb.item_get)
  • 一文读懂:什么是CLIP
  • 分布式存储 Ceph 的演进经验 · SOSP 2019
  • 【Web安全】csrf、ssrf和xxe的区别
  • GPT-OSS-20B vs Qwen3-14B 全面对比测试
  • 【大模型系列】gpt-oss系列模型初探
  • ACL 2025 Oral|Evaluation Agent:面向视觉生成模型的高效可提示的评估框架
  • 服务器重启后mysql5.7启动失败问题
  • MySql_忘记了root密码怎么办
  • win服务器系统10060问题解决
  • Kali Linux虚拟机安装和中文配置详细教程(2025版)
  • Sklearn 机器学习 数据聚类 DBSCAN聚类算法的异常点
  • MicrochipSam9x60 PIO寄存器操作流程
  • TypeScript 元组类型精简知识点
  • 网络拨测和业务拨测是什么意思
  • 【Create my OS】8 文件系统
  • 【Go】新版GORM自动字段映射规则
  • 基于深度学习的医学图像分析:使用Diffusion Models实现医学图像生成
  • word2vector细致分解(CBOW, SKIP_GRAM, 层次soft Max, 负采样)
  • 8月6日星期三今日早报简报微语报早读
  • 机器学习 朴素贝叶斯
  • 园区误报率↓79%!陌讯多模态融合算法在智慧环卫越界识别的工程实践
  • 防火墙及firewall工具详解
  • AI增强的软件测试工具
  • 解决pytorch-lightning1.6.0安装时自动下载最新的pytorch方法