方法一
shareRoute(content, link) {
let row = content + `\n` + link; // 要复制的内容
navigator.clipboard.writeText(row).then(
(res) => {
this.$message({
message: "复制链接成功!",
type: "success",
duration: 2000,
});
},
(err) => {
this.$message({
message: "复制链接失败!",
type: "error",
duration: 2000,
});
}
);
},
但是上边的代码,存在一个问题,本地使用没问题,但是打包后的代码就失效了!!!
使用插件
npm install clipboard --save
入口文件 main.js 全局挂载一下
import clipboard from 'clipboard'
Vue.prototype.clipboard = clipboard;
<el-button
size="mini"
type="text"
@click="shareRoute"
class="tag-copy"
:data-clipboard-text="row.link"
>复制链接</el-button>
必须写!!!
// 加一个名字
class="tag-copy"
// 要复制的内容
:data-clipboard-text="row.link"
shareRoute() {
let clipboard = new this.clipboard(".tag-copy");
clipboard.on("success", (e) => {
this.$message({
message: "复制链接成功!",
type: "success",
duration: 2000,
});
//清除选中
e.clearSelection();
//释放内存,以防重复复制
clipboard.destroy();
});
clipboard.on("error", (e) => {
// 不支持复制
this.$message({
message: "复制链接失败!",
type: "error",
duration: 2000,
});
//清除选中
e.clearSelection();
//释放内存,以防重复复制
clipboard.destroy();
});
},