Javascript自定义页面复制事件

Javascript自定义页面复制事件 – WhiteNight's Site

2023年10月13日

文章访问量:90

标签:Javascript

监听copy事件以达到自定义页面复制功能的效果。

写者注

需要注意的是,浏览器的部分拓展插件(如迅雷)会导致本文的代码报错。不过该报错不影响功能,而且只有在f12开发者控制台才能看见。不过如果觉得看着报错不顺眼的话,关闭导致你报错的拓展即可(自己一个一个试)。

什么是copy事件

用户的复制事件

当用户尝试在页面上复制某些内容时,就会触发copy事件。而通过监听copy事件,我们就可以自定义用户在页面上的复制的内容。比如当用户尝试复制时,出现弹窗或跳转页面(如百度文库);又或者是在用户复制的内容后加上copyright内容(如csdn)。

示例:禁止用户复制,并添加弹窗或跳转页面

代码和效果示例

先放一个能自由输入和复制的文本框在这里,方便调试。

测试文本:

先来实现禁止用户复制的逻辑。这里先放例子。可以试着复制下列文本,再粘贴到上方的文本框中,看看能不能复制成功。

->    你不能复制该内容    <-

->    你可以复制该内容    <-

写者注

样式实在不想改,琢磨css样式的话一琢磨就是一整天。还是先把文章完成再说。

上面这段代码实现了对

段落标签的监听,当用户尝试复制该内容时,阻止默认的复制事件,并实现你自定义的事件。这里自定义的是修改用户剪贴板的内容,并在浏览器中显示一个警告的弹窗。以下是代码(除去了css)

->    你不能复制该内容    <-

->    你可以复制该内容    <-

那跳转页面也不难实现,直接给实现效果和代码吧。现在当你尝试复制相关内容时,会自动打开我的网站首页。

->    你不能复制该内容    <-

->    你可以复制该内容    <-

->    你不能复制该内容    <-

->    你可以复制该内容    <-

写者注

由于wordpress中自定义html区块就是直接把相关代码直接插入进当前html的一个div容器中,所以如果不指定要监听的元素,会导致当前页面的所有内容都无法访问。想监听当前页面所有dom的话把content换成document.addEventListener即可。

你可能感兴趣的:(Javascript,javascript,开发语言,ecmascript)