前端实现复制功能

前端实现复制功能

<!-- 点击复制按钮实现复制下面这一串编码 -->
<span id="code">6667770000000999888</span><button class="copy_btn">复制</button>

复制方法(需要引入jq)

$("body").on("click", ".copy_btn", function() {
	let copyText = $("#code").text();  // 先获取需要复制的文本值
	
	let flag = copyText(copyText);  // 设定一个复制标志flag,后续根据flag将复制按钮改成“已复制”,copyText是复制函数
	if(flag) {
		$(".copy_btn").text("已复制");
		$("body").off("click", ".copy_btn");  // 已复制之后为复制按钮移除复制功能
	}
})

function copyText(copyText) {
	let textInput = "<input type='text' class='copy_input'>";  // 创建一个输入框,用于临时储存复制的内容
	$("body").append(textInput);  // 把这个输入框追加到页面,最好用绝对定位,z-index:-1000;避免出现在页面可见范围内造成抖动

	let currentFocus = $(document.activeElement);  // 标记一下当前焦点元素
	$("copy_input").val(copyText).focus().select();  // 对刚追加的临时存储用的input赋值需要复制的文本,然后让其获得焦点,并选中
	let flag;
	try {
		flag = document.execCommand("copy");  // 执行复制,并给flag,执行了之后为true
	} catch (err) {
		flag = flase;  // 出错则将flag复制为flase
	}
	
	$("input").remove(".copy_input");  // 执行完复制操作之后,删除临时存储input
	currentFocus.focus();  // 焦点给到复制之前的焦点元素上
	return flag;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值