使用
clipboard
插件,实现复制文本到剪贴板
安装 clipboard
插件
npm install clipboard --save
多处使用这个复制功能,做了个简易的 js
封装
// 复制文本到剪贴板
import { Message } from "element-ui";
import Clipboard from "clipboard"; // 引入 clipboard 插件
const copy = function (content,className) {
var Url = content;
var clipboard = new Clipboard( className , {
text: function () {
return Url;
}
});
clipboard.on("success", e => {
Message({
message: "已成功复制到剪切板",
type: "success"
});
// 释放内存
clipboard.destroy();
});
clipboard.on("error", e => {
// 不支持复制
Message("该浏览器不支持复制");
// 释放内存
clipboard.destroy();
});
}
export default {
copy
}
在 main.js
中引用,并挂载到 vue
实例上
// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import "@/assets/style/main.css"
import Clipboard from './util/clipboard'
Vue.use(ElementUI);
Vue.config.productionTip = false
Vue.prototype.$clipboard = Clipboard;
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
components: { App },
template: '<App/>'
})
使用(举个栗子)
<div>
<span>收货地址:</span>
<span>{{ item.name }}</span>
<span>{{ item.phone }}</span>
<span>{{ item.address }}</span>
<i class="el-icon-document-copy copyAdd" @click="copyAddress(item.name, item.phone, item.address)"></i>
</div>
copyAddress(name, phone, address) {
let content = name + " " + phone + " " + address;
this.$clipboard.copy(content, ".copyAdd");
},