前端禁用 页面复制粘贴

1、实现禁用 copy 事件的代码

document.addEventListener('copy', function (event) {
    event.preventDefault(); // 阻止默认的复制行为
    alert(`复制功能已被禁用,无法复制此页面的内容。`);
});

事件监听器的工作原理
为了更好地理解这段代码的原理,我们可以更深入地分析 addEventListener() 的工作机制。

addEventListener() 方法允许我们为指定的事件类型添加一个监听器。这里,我们为 copy 事件添加了监听器,这意味着当用户尝试执行复制操作时,这个函数会被调用。
event.preventDefault() 是关键的部分,它告诉浏览器不要执行 copy 事件的默认行为。由于浏览器的默认行为是将选定的文本内容复制到剪贴板,所以 preventDefault() 可以阻止这一过程。
这种方法不仅可以应用于整个文档,也可以应用于特定的元素。如果我们只希望禁用某些特定部分的复制功能,而不是整个页面的内容,那么可以为特定元素添加 copy 事件监听器。例如:

const protectedElement = document.getElementById('protected-content');
protectedElement.addEventListener('copy', function (event) {
    event.preventDefault();
    alert(`此内容受保护,无法复制。`);
});

2、增强版 (禁用右键菜单)

document.addEventListener('contextmenu', function (event) {
    event.preventDefault();
    alert(`右键菜单已禁用。`);
});

3、示例

document.addEventListener('copy', function (event) {
    event.preventDefault();
    alert(`复制功能已被禁用,无法复制此页面的内容。如需获得内容,请联系我们。`);
});

document.addEventListener('contextmenu', function (event) {
    event.preventDefault();
    alert(`右键菜单已被禁用,感谢您的理解。`);
});

// 提供替代的解决方案
document.querySelector('#request-content').addEventListener('click', function () {
    alert(`您可以通过填写申请表来获得此内容的复制权限。`);
});

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

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

相关文章

【零基础学习UDS诊断测试】——0x10测试用例设计

从0开始学习CANoe使用 从0开始学习车载测试 相信时间的力量 星光不负赶路者,时光不负有心人。 目录 1.概述 2.三个会话介绍 3.会话切换逻辑 4.会话响应格式 5.解析测试点 5.1. 0x10 5.1.1 具体用例设计 5.1.1.1 NRC否定响应码 6.详细用例展示 1.概述 主要基于诊断调查表介…

一键生成后端服务,MemFire Cloud重新定义开发效率

作为开发者,特别是独立开发者和小团队成员,大家都知道开发的最大难题之一就是搭建后端服务。要让一个应用从零开始,除了前端的开发工作外,还需要考虑数据库、接口、认证、存储等等一系列繁琐的后台工作。而MemFire Cloud这款神器&…

QT:信号和槽01

QT中什么是信号和槽 概念解释 在 Qt 中,信号(Signals)和槽(Slots)是一种用于对象间通信的机制。信号是对象发出的事件通知,而槽是接收并处理这些通知的函数。 例如,当用户点击一个按钮时&#…

抓包之查看websocket内容

写在前面 本文看下websocket抓包相关内容。 1:正文 websocket基础环境搭建参考这篇文章。 启动后,先看chrome的network抓包,这里我们直接使用is:running来过滤出websocket的请求: 可以清晰的看到发送的内容以及响应的内容。在…

java网络通信(三):TCP通信、实现客户端-服务端消息通信

目录 1、什么是 TCP协议? 2、代码实现TCP协议的一发一收 2.1、客户端 2.2、服务端 2.3 结果演示 3、代码实现TCP协议的多发多收 3.1 客户端 3.2 服务端 3.3 结果演示 简介:本文章主要是演示如何用java代码以及TCP协议实现网络通信,实…

java基础概念46-数据结构1

一、引入 List集合的三种实现类使用了不同的数据结构! 二、数据结构的定义 三、常见的数据结构 3-1、栈 特点:先进后出,后进先出。 java内存容器: 3-2、队列 特点:先进先出、后进后出。 栈VS队列-小结 3-3、数组 3-…

python: Treeview Pagination

# encoding: utf-8 # 版權所有 2024 ©塗聚文有限公司 # 許可資訊查看:言語成了邀功的功臣,還需要行爲每日來值班嗎? # 描述: Treeview Pagination # Author : geovindu,Geovin Du 塗聚文. # IDE : PyCharm 2023.1…

C# winform非常好用的图表开源控件Scottplot

wifnorm自带的chart控件功能和性能都不太行,所以在网上搜索到了Scottplot开源图表控件。根据自己需要,将已经试验使用过的用法记录在这里 winform建议使用版本 Scottplot包版本:4.1.71 这个版本在winform中可以以控件形式直接拖拉到窗体中使…

SQL面试50题

数据表关系图 数据表 CREATE TABLE student (id int(11) NOT NULL AUTO_INCREMENT,name varchar(255) NOT NULL,sex enum(female,male) NOT NULL,birth date NOT NULL,credit float(5,2) DEFAULT NULL,PRIMARY KEY (id) ) ENGINEInnoDB AUTO_INCREMENT25 DEFAULT CHARSETutf8;…

Redis(配置文件属性解析)

一、tcp-backlog深度解析 tcp-backlog是一个TCP连接的队列,主要用于解决高并发场景下客户端慢连接问题。配置文件中的“511”就是队列的长度,对联与TCP的三次握手有关,不同的linux内核,backlog队列中存放的元素(客户端…

Vue3 脚手架扩展

当 yarn dev 运行成功后,我们继续添加扩展 首先我们要安装一些依赖 其中的vue-router和vuex安装最新版的就行,因为项目是vue3 element-plus和less,less-loader最好按照我这个版本来下载 element-plus是一个vue常用的ui组件库 element-plus/…

TCP/IP协议簇自学笔记

摘抄于大学期间记录在QQ空间的一篇自学笔记,当前清理空间,本来想直接删除掉的,但是感觉有些舍不得,因此先搬移过来。 曾经,我只知道socket函数能进行网络间数据的通信,知道tcp/ip协议也是用来进行网络数据…

AI开发:逻辑回归 - 实战演练- 垃圾邮件的识别(二)

接上一篇AI开发:逻辑回归 - 实战演练- 垃圾邮件的识别(一) new_email 无论为什么文本,识别结果几乎都是垃圾邮件,因此我们需要对源码的逻辑进行梳理一下: 在代码中,new_email 无论赋值为何内容都被识别为…

字符串处理(二)

第1题 篮球比赛 查看测评数据信息 学校举行篮球比赛,请设计一个计分系统统计KIN、WIN两队分数,并输出分数和结果! 如果平分就输出‘GOOD’,否则输出获胜队名! 输入格式 输入数据共n1行, 第1行n&#xf…

【数据库系列】Liquibase 与 Flyway 的详细对比

在现代软件开发中,数据库版本控制是一个至关重要的环节。为了解决数据库迁移和变更管理的问题,开发者们通常会使用工具,如 Liquibase 和 Flyway。本文将对这两个流行的数据库迁移工具进行详细比较,从基础概念、原理、优缺点到使用…

企业品牌曝光的新策略:短视频矩阵系统

企业品牌曝光的新策略:短视频矩阵系统 在当今数字化时代,短视频已经渗透到我们的日常生活之中,成为连接品牌与消费者的关键渠道。然而,随着平台于7月20日全面下线了短视频矩阵的官方接口,许多依赖于此接口的小公司和内…

PostgreSQL最常用数据类型-重点说明自增主键处理

简介 PostgreSQL提供了非常丰富的数据类型,我们平常使用最多的基本就3类: 数字类型字符类型时间类型 这篇文章重点介绍这3中类型,因为对于高并发项目还是推荐:尽量使用简单类型,把运算和逻辑放在应用中,…

做异端中的异端 -- Emacs裸奔之路4: 你不需要IDE

确切地说,你不需要在IDE里面编写或者阅读代码。 IDE用于Render资源文件比较合适,但处理文本,并不划算。 这的文本文件,包括源代码,配置文件,文档等非二进制文件。 先说说IDE带的便利: 函数或者变量的自动…

ospf协议(动态路由协议)

ospf基本概念 定义 OSPF 是典型的链路状态路由协议,是目前业内使用非常广泛的 IGP 协议之一。 目前针对 IPv4 协议使用的是 OSPF Version 2 ( RFC2328 );针对 IPv6 协议使用 OSPF Version 3 ( RFC2740 )。…

【热门主题】000072 分布式数据库:开启数据管理新纪元

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【热…