封装了一个方法:
/**
* 复制文本
* @param val
*/
const copy = function(val) {
let textarea = document.createElement("textarea"); // 创建textarea
textarea.readOnly = 'readonly'
textarea.style.position = 'absolute'
textarea.style.left = '-9999px'
textarea.value = val; // 赋值给 textarea 值
document.body.appendChild(textarea); // 插入进去
textarea.select(); // 选择对象
textarea.setSelectionRange(0, textarea.value.length)
const result = document.execCommand("Copy"); // 原生调用执行浏览器复制命令
if (result) {
this.$message.success("复制成功");
}
document.body.removeChild(textarea)
}
vue页面中使用:
<template>
<el-button icon="el-icon-connection @click.native="copy(items.projectUrl)" ></el-button>
</template>
<script>
import { copy } from "@/common/utils";
export default {
methods:{
copy,
}
}
</script>
点击按钮后,跳出提示:复制成功