clipboard.js 我用於實現 點擊復制,根據官方文檔,我如下寫了一個例子,如下:
<template>
<div class="hello">
<button @click="copy1">我就是要復制你</button>
<button @click="copy2">我就是要復制你誰誰誰誰誰誰</button>
</div>
</template>
<script>
import Clipboard from "clipboard";
export default {
name: "HelloWorld",
data() {
return {
msg: "Welcome to Your Vue.js App"
};
},
created() {},
methods: {
copy1(e) {
console.log("復制", e.target);
let xxx = new Clipboard(e.target, {
text: () => 3444444444444
});
console.log("0000",xxx)
xxx.on("success", function(e) {
console.log("成功")
xxx.destroy()
});
xxx.on("error", function(e) {
console.log("失敗")
xxx.destroy()
});
},
copy2() {
console.log("復制");
}
}
};
</script>
但是,測試的時候發現,第一次點擊無效,要點擊第二次才生效,於是百度,結果百度出了一些邪門歪道,說啥用onmousemove 來觸發第一次,我只能說,拒絕這種行為,經過我修改,代碼如下
<template>
<div class="hello">
<button @click="copy1($event)">我就是要復制你</button>
<button>我就是要復制你誰誰誰誰誰誰</button>
</div>
</template>
<script>
import clipboard from "../utils/clipboard";
export default {
name: "HelloWorld",
data() {
return {
msg: "Welcome to Your Vue.js App"
};
},
methods: {
copy1(event) {
clipboard("1234", event);
}
}
};
</script>
另外新建一個js
import Clipboard from 'clipboard' export default function handleClipboard(text,event){ const clipboard = new Clipboard(event.target,{ text:()=>text }) clipboard.on('success',() => { clipboard.destroy() }) clipboard.on('error',() =>{ clipboard.destroy() }) clipboard.onClick(event) }
這樣就可以了,哦哦哦~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
