前言
vue-clipboard2
复制粘贴内容时,会把/r/n
一起复制,粘贴时如果想直接使用,就还得去掉/r/n
为什么会出现如此的需求呢?
比如说,我们需要复制这段字符串:
select * from webxiu;/r/nselect * from post;
最完美的粘贴是这样子的:
select * from webxiu;
select * from post;
可以直接使用,但是vue-clipboard2
却不是这样子的,他依旧会复制粘贴最初的字符串。
解决方法
大家都知道textarea
可以自动把/r/n
字符串去掉,并且换行展示,所以我们就利用它
js创建一个textarea,并把我们要复制的内容放入到textarea中,然后在复制textarea的内容即可。
代码实现
copy(text) {
return new Promise(resolve => {
// 如果复制单行,用input
// 如果复制多行,用textarea
const textarea = document.createElement("textarea");
// 创建一个textarea框获取需要复制的文本内容
textarea.value = text;
// app就是页面已存在的id选择器,主要目的是把textarea放入
const appDiv = document.getElementById("app");
appDiv.appendChild(textarea);
textarea.select();
document.execCommand("Copy");
textarea.remove();
resolve(true);
});
}
这样通过调用copy()
就可以轻松实现复制带换行符的字符串了,而且放到任意地方都可以直接使用。
正文结束
Ctrl + Enter