vue3 复制粘贴文本

本文探讨了一键复制功能在不同环境下的实现挑战,包括navigator.clipboard的本地限制和document.execCommand的弃用。最后推荐使用vue-clipboard3库来解决跨域复制问题,便于在项目中集成和使用。
摘要由CSDN通过智能技术生成

前言

需求中有一键复制,一键粘贴的功能,尝试了三种使用方法

navigator

const text = ref('要复制的内容');
navigator.clipboard.writeText(text.value);

但是这种方法只能本地运行时使用,测试环境时会报错,因为浏览器禁用了非安全域的 navigator.clipboard 对象

document.execCommand(‘copy’)

const text = ref('要复制的内容');
const copyText = (text) => {
	const textarea = document.createElement('textarea');
	textarea.value = text;
    document.body.appendChild(textarea);
    textarea.focus();
    textarea.select();
    message.success('复制成功');
    return new Promise((resolve, reject) => {
	   document.execCommand('copy') ? resolve() : reject();
	   textarea.remove();
 })
};
copyText(text.value)

document.execCommand可以使用,但自身处于弃用状态

vue-clipboard3

下载

npm i vue-clipboard3

引用和使用

import useClipboard from 'vue-clipboard3';
const { toClipboard } = useClipboard();

const text = ref('要复制的内容');
const copyText = async (text) => {
	try {
	    await toClipboard(text);
	    message.success('复制成功');
	} catch (e) {
	    console.error(e);
	}
}
copyText(text.value)

总结

复制推荐使用vue-clipboard3
粘贴在项目中直接赋值了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值