封装一个剪切版
提示使用了antd的massage不需要提示可自行修改
import { message } from 'antd';
/**
* 拷贝指定文案到剪贴板
* * text 要复制的文案
* * prompt 是否提示复制成功
* * return true 复制成功 false 复制失败
*/
export const handleCopy = (
text: string,
prompt: boolean | undefined = true,
msgTest: string | undefined = "复制成功!"
) => {
if (text) {
const textarea: any = document.createElement("textArea");//创建input对象
const currentFocus: any = document.activeElement;//当前获得焦点的元素
document.body.appendChild(textarea);//添加元素
textarea.value = text;
textarea.focus();
if (textarea.setSelectionRange)
textarea.setSelectionRange(0, textarea.value.length);//获取光标起始位置到结束位置
else
textarea.select();
try {
var flag = document.execCommand("copy");//执行复制
if (prompt) { message.success(msgTest); }
} catch (eo) {
var flag = false;
}
document.body.removeChild(textarea);//删除元素
currentFocus?.focus();
return flag;
} else {
message.error("复制失败,当前复制内容为空!");
return false;
}
}