Javascript自定义页面复制事件

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

2023年10月13日

文章访问量:90

标签:Javascript

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

写者注

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

什么是copy事件

用户的复制事件

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

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

代码和效果示例

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

测试文本:

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

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

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

写者注

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

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

<div class="copypanel">
  <p id="content">
    -&gt;&nbsp;&nbsp;&nbsp;&nbsp;你不能复制该内容&nbsp;&nbsp;&nbsp;&nbsp;&lt;-
  </p>
  <p id="content2">
    -&gt;&nbsp;&nbsp;&nbsp;&nbsp;你可以复制该内容&nbsp;&nbsp;&nbsp;&nbsp;&lt;-
  </p>
</div>

<script>
  content.addEventListener('copy',(e)=>{
    e.preventDefault();
    e.clipboardData.setData('text/plain','复制失败!');
    alert("不准复制!!!")
  })
</script>

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

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

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

<div class="copypanel2">
  <p id="content3">
    ->&nbsp;&nbsp;&nbsp;&nbsp;你不能复制该内容&nbsp;&nbsp;&nbsp;&nbsp;<-
  </p>
  <p id="content4">
    ->&nbsp;&nbsp;&nbsp;&nbsp;你可以复制该内容&nbsp;&nbsp;&nbsp;&nbsp;<-
  </p>
</div>

<script>
  content3.addEventListener('copy',(e)=>{
    e.preventDefault();
    window.open("https://white-night.club"); 
  })
</script>

写者注

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值