js复制粘贴

本文介绍了如何使用JavaScript禁止文本复制,实现只复制选中内容并附加数据,以及如何让页面自动获取并显示复制的内容。通过监听copy事件和navigator.clipboardAPI进行操作,涉及Promise的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

相信大家在平时上网的或者逛一些博客的时候,会出现文字无法复制或者说复制之后粘贴会带一些其他文字这种情况;还有那种可以在页面自动给你粘贴你刚才复制的一些内容;下面就给大家介绍一下这些功能是如何实现的。


提示:下面案例可供参考
先上页面结构

	<div>春天到了,桃花开了</div>
	<input type="text" name="">
	<div id="text"></div>

1.如何实现禁止复制:

window.addEventListener('copy',(e) => {
 	// 禁止复制
 	 e.preventDefault();
 })

很简单,就一个监听浏览器的copy事件然后阻止默认事件。

2.如何实现你复制的是你选中的代码,为啥最后粘贴的内容跟你复制的不一样或者在你复制的内容里面加上一些其他内容:

window.addEventListener('copy',(e) => {
 	navigator.clipboard.writeText('哈哈,你赋值不了')
 	navigator.clipboard.writeText(`${e.target.innerText}我是附加的数据`)
 })

上面两种方式分别对应两种功能,监听复制事件,然后通过window的navigator.clipboard.writeText方法重写内容

3.页面自动给你粘贴复制的内容

navigator.clipboard.readText().then(res=>{
	// 需要用户同意
	console.log(res)
	document.getElementById('text').innerText = res
})

通过调用navigator.clipboard.readText方法获取复制的值,当然浏览器会提示是否同意

注意:有没有发现上面的navigator.clipboard.readText方法后面用了啥,then方法,没错,这个方法返回的其实是一个promise对象

总结

以上就是复制粘贴的一些方法,如果有问题欢迎大家指正

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值